|
|
|
| Я уже замучался. Вроде элементарно, а сделать не могу. Вот есть например строка str и символ chr
char * str = new char;
str = "blablabla";
char chr = 'f';
|
Мне надо в строке str1 получить результат обьединения строки str и символа chr т.е. blablablaf | |
|
|
|
|
|
|
|
для: Евгений Петров
(28.11.2005 в 17:06)
| | Вообще говоря вы под строку отводите только один байт
Поэтому строка "blablabla" производит переполнение буфера и "lablabla" пишется чёрт знает куда, в С++ следует следить за памятью и выделять достаточное число байт
char * str = new char[11];
|
Этот пример выделит 11 байт, вообще нужно 10, но так как вы запишете ещё 'f' - об выделении памяти под строку следует позаботится заранее. Вообще если символ один, то проще его просто прописать в конец при помощи кода
int main(int argc, char* argv[])
{
char * str = new char[11];
str = "blablabla";
char chr = 'f';
str[9] = chr;
str[10] = '\0';
return 0;
}
|
Т.е. мы помещаем символ chr вместо 9 символа (где находится нулевой байт \0), а нулевой байт смещаем на позицию 10, благо памяти мы под это дело выделили и можно не боятся переписать код программы мусором. | |
|
|
|
|
|
|
|
для: cheops
(28.11.2005 в 19:52)
| | Надо будет попробовать вариант... Спасибо! | |
|
|
|