metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-04-22 06:05 pm

C, parse comma-separated line

Кошерен ли такой код для разбиения строки, разделенной запятыми на отдельные строки: http://ideone.com/rhNXq ?

PS: strtok не признаю по идеологическим причинам - она меняет анализируемую строку, что меня крайне пугает, хотя в моем конкретном случае это не мешает.

PPS: безотносительно к strtok, в функции было минимум две ошибки - отсутствие проверки на выход за пределы буфера и попадание eol в последнюю строку (девайсина, с которой приходит строка, терминирует ее \r)

[identity profile] metaclass.livejournal.com 2012-04-22 03:13 pm (UTC)(link)
Про них какие-то неприятные вещи в man написаны, меня идея модифицировать строку ради парсинга крайне пугает.

[identity profile] blacklion.livejournal.com 2012-04-22 03:17 pm (UTC)(link)
Есть ещё strcspn() и strspn() и strpbrk()
Edited 2012-04-22 15:18 (UTC)