T
Trikster
Нид хэлп!
Надо зеркально перевернуть строку символов (как для палиндрома)
Вот код:
char *a, *b, *c, d;
a=Edit3->Text.c_str();
for(b=c=a;*(c+1)!=NULL;c++);
while(b<c)
{
d=*b;
*b++=*c;
*c--=d;
}
Edit3->Text=AnsiString(a);
Со строками типа char всё работает без вопросов.
А вот при преобразовании обратно в AnsiString в случае, если в строке нечётное количество символов (не считая концевого "\0") пропадает символ, который был первым в исходной строке...
Ниччего не понимаю!...
Надо зеркально перевернуть строку символов (как для палиндрома)
Вот код:
char *a, *b, *c, d;
a=Edit3->Text.c_str();
for(b=c=a;*(c+1)!=NULL;c++);
while(b<c)
{
d=*b;
*b++=*c;
*c--=d;
}
Edit3->Text=AnsiString(a);
Со строками типа char всё работает без вопросов.
А вот при преобразовании обратно в AnsiString в случае, если в строке нечётное количество символов (не считая концевого "\0") пропадает символ, который был первым в исходной строке...
Ниччего не понимаю!...