LINUX.ORG.RU

Удаление пробелов в конце строки

 


0

2

По идее нубский вопрос, но как это сделать для мультибайтной кодировки без перевода в unicode? Ведь код непечатываемого символа из ASCII может быть частью расширенного символа или я не прав? Просто если удалять пробелы в конце строки перебирая символы с ее начала, не будет ли это оверхедом и окажется, что стандартный алгоритм все равно работает на любых мультибайтных кодировках?


Что за кодировка хоть?

Ведь код непечатываемого символа из ASCII может быть частью расширенного символа или я не прав?

Для UTF-8 не может.

Если в этой кодировке байт 0x0A может обозначать как конец строки, так и быть кусочком другого символа, то очевидно, что надо не только найти все 0x0A и проверить символы перед ними, но и убедиться, что 0x0A обозначает именно конец строки.

ilammy ★★★
()
Последнее исправление: ilammy (всего исправлений: 1)
char cmd[1024];
char output[1024];
sprintf(cmd, "echo \"%s\"|perl -pne \"s/\\s+//g\"", my_str_with_spaces);
FILE *out = popen(cmd, "r");
fread(output, 1, sizeof(output), out);
fclose(out);
strncpy(my_str_with_spaces, output, sizeof(my_str_with_spaces);
DELIRIUM ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.