Проблема с strcat
Собственно, есть фрагмент кода:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char seps[] = ",";
int a[]={0};
int k=0;
int max=0;
char *token;
char *t2;
char *str;
str=Edit1->Text.c_str();
token=strtok(str, seps);
max=StrToInt(token);
while(token != NULL)
{
a[k]=StrToInt(token);
k++;
if (StrToInt(token)>max)
{
max=StrToInt(token);
}
token = strtok(NULL, seps);
}
for (int i=0; i<k; i++)
if (a==max)
a=0;
for (int i=0; i<k; i++)
{
str=strcat(str, IntToStr(a).c_str());
}
ShowMessage(str);
}
Однако, вылетает с ошибкой. Помогите разобраться, надо срочно...
В какой строке вылетает,с какой ошибкой?Телепатов же не существует!
Моя видеть классический ашыпка:
вылетает с ошибкой Project raised exception class EConvert error with message ''
и еще, в чем ошибка с str=Edit1->Text.c_str();?
str=Edit1->Text.c_str(); - Нужно не присваивать указатель, а копировать данные. strcpy решает! Не забываем выделить память под строку!
Об исполнении доложить.
Ошибка в том, что ты присваиваешь указатель. strcpy тебе в руки.
все, разобрался, strcpy действительно то что нужно :)