Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Mr.Nobody Гость
|
Добавлено: Чт Апр 08 2004 15:19 Заголовок сообщения: Вопрос по C |
|
|
Требуется к строке с печатными символами (для примера:
char string1="Hello") добавить бинарную строку (напр:
char string2="Последовательность_байт").
strncat и sprintf не прокатывают (заполняют пробелами и др.символами содержимое бинарной строки) - те:
write(fd,string1,sizeof(string1);
write(fd,string2,sizeof(string2);
- всё OK, а:
strcpy(string,string1);
strncat(string1,string2,sizeof(string2));
write(fd,string,sizeof(string));
- получается херня (размер тот же но символы другие).
Почему так и как лечить (объеденить строки)? (gcc,Linux,cgic) |
|
Вернуться к началу |
|
|
grayrat
Зарегистрирован: 30.06.2003 Сообщения: 189
|
Добавлено: Чт Апр 08 2004 16:20 Заголовок сообщения: |
|
|
функции strxxx рассчитаны на работу с печатными символами, т.е. с кодами >31 плюс 9 - табуляция, 10 - перевод строки, 13 - возврат каретки и ноль - конец строки принятой в стандарте С. Что после нуля - обрывается.
Короче, пользуйся memcpy |
|
Вернуться к началу |
|
|
Mr.Nobody Гость
|
Добавлено: Чт Апр 08 2004 16:43 Заголовок сообщения: |
|
|
Спасибо за исчерпывающий ответ. |
|
Вернуться к началу |
|
|
|