Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по С++
 
 автор: Евгений Петров   (28.11.2005 в 17:06)   письмо автору
 
 

Я уже замучался. Вроде элементарно, а сделать не могу. Вот есть например строка str и символ chr
  char * str = new char;
  str = "blablabla";
  char chr = 'f';

Мне надо в строке str1 получить результат обьединения строки str и символа chr т.е. blablablaf

   
 
 автор: cheops   (28.11.2005 в 19:52)   письмо автору
 
   для: Евгений Петров   (28.11.2005 в 17:06)
 

Вообще говоря вы под строку отводите только один байт
char * str = new char;

Поэтому строка "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, благо памяти мы под это дело выделили и можно не боятся переписать код программы мусором.

   
 
 автор: Евгений Петров   (28.11.2005 в 20:32)   письмо автору
 
   для: cheops   (28.11.2005 в 19:52)
 

Надо будет попробовать вариант... Спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования