2
profrotterВы там наверное имели ввиду
\0 вместо
\n?
Да и вообще, для добавления одиночных символов, использовать
strcat смысла нет. Лучше как-то так:
char s[100];
char s0[100];
...
L=strlen(s);
for(int j=i+k; j>=i; j--)
{
s[L++]=s0[j];
s[L]=0;
...
}
2
0n0Я бы посоветовал, в первую очередь, не ориентироваться на C++ Builder (на всякие
AnsiString'и), а руководствоваться стандартом C++ или книжкой Страуструпа.
Если вы хотите написать код на C, то учтите, что для добавления символов к строке необходимо предварительно выделить дополнительную память, то есть увеличить длину строки (или заранее предусмотреть лишнее место, как в примере
profrotter'а; правда в последнем случае вам придется ещё и возможное переполнение контролировать).
По теме. В C++ есть стандартный класс
std::string, который умеет склеивать строки; но это так, на случай если захочется именно C++, а не C-решение иметь.
-- Чт май 19, 2011 20:45:08 --Пример для C++:
#include <iostream>
#include <string>
...
std::string s="test";
s+='a';
std::cout << s;
Тот же эффект может быть достигнут как
std::cout << s+'a' или методами
append или
push_back.
Ещё можно воспользоваться C++ IO-потоками, а именно классом
std::ostringstream:
#include <iostream>
#include <string>
#include <sstream>
...
std::string s="test";
std::ostringstream Stream;
Stream << s << 'a';
std::cout << Stream.str();