Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Strncat()


Автор: NDQuattro 20.5.2009, 18:56
Hello everybody..
Код

  char *s = new char [500];
  cin >> s;
  char *buff2 = new char [4];
  strncat(buff2,s,4);


4 символа из строки s то присоединяет к строке buff2, но в результате получается что buff2 состоит из Одного непонятного символа+то что мы прикрепили.
Не могу врубиться что это за символ и как от него избавится, мы же в свободную память клеим... 
наверн не совсем понимаю все аспекты работы этой ф-ции, дайте наводку плз. 

Автор: andrew_121 20.5.2009, 19:07
NDQuattro, После выделения, память обнули. Или хотя бы первый символ. Или strncpy(), если ты хочешь скопировать строку а не добавить.

Добавлено через 2 минуты и 42 секунды
Код

  char *s = new char [500];
  cin >> s;
  char *buff2 = new char [4];
  *buff2 = 0;
  strncat(buff2,s,4);

Или:
Код

  char *s = new char [500];
  cin >> s;
  char *buff2 = new char [4];
  memset(buff2, 0, 4);
  strncat(buff2,s,4);


Автор: NDQuattro 20.5.2009, 19:10
вот туплю же.. надо спать больше.
спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)