|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.10.2012, 23:25 | #1 |
Пользователь
Регистрация: 23.09.2012
Сообщений: 17
|
Выводит иероглифы
Здравствуйте. Есть такая вот задача.. Нужно написать функцию:
error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len). Функция преобразует null-terminated строку string в argz вектор разбивая строку на элементы всякий раз, когда встречается символ sep. Вектор argz есть null-terminated строка, в которой элементы разделены символом ’\0’. являются пары name=value Например, char *const string = "SHELL=/bin/bash:usr=monty:PWD=/bin/monty:LANG=en_US.UTF-8"; char *argz; int argz_len; Код:
Код:
P.S. Если изначальную строку изменить(убрать последние 2 символа) на char *string1="SHELL=/bin/bash:usr=monty:PWD=/bin/monty:LANG=en_US.UTF"; то иероглифы не выводятся, аналогичный результат если добавить определенное количество лишних символов. (изображение ) |
18.10.2012, 19:51 | #2 |
Пользователь
Регистрация: 04.10.2012
Сообщений: 95
|
многие функции работы со строками в качестве признака окончания строки используют символ \0 Поэтому, длина строки должна быть на 1 символ меньше буфера, а последний символ лучше всегда чтобы был \0. (Если длина строки меньше длины буфера то это может быть и не последний символ, но если последний всегда будет \0 хуже от этого не станет) Вот скорее всего у тебя из-за отсутствия \0 на вывод подается какой-то мусор. Ну или вывод через функцию которая принимает длинну, а длина оказалась больше длины строки и опять на вывод попадает мусор.
Код если чесно не смотрел, судя по твоему комментарию скорее всего это так, и сам сталкивался с этой проблемой не раз. (в GUI "квадратики" чаще вместо иероглифов ))) Думаю разберешься, судя по тексту, человек умный ) Но если что, попробую помочь.
Пишу на чистом С, плюсы спилил.
|
20.10.2012, 14:41 | #3 |
Пользователь
Регистрация: 23.09.2012
Сообщений: 17
|
Спасибо большое! С проблемой разобрался.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SendMessage иероглифы !? | Pozitif | Помощь студентам | 3 | 08.12.2011 21:03 |
MessageBox и иероглифы | ImmortalAlexSan | Общие вопросы C/C++ | 5 | 10.03.2011 12:22 |
Иероглифы в командной строке | ac1d_buRn | Операционные системы общие вопросы | 8 | 26.02.2011 20:27 |
Вместо русского иероглифы | Kart | Общие вопросы C/C++ | 3 | 20.07.2009 09:25 |
Иероглифы в Equation | mitrandir | Microsoft Office Word | 9 | 25.09.2007 09:06 |