C, parse comma-separated line
Кошерен ли такой код для разбиения строки, разделенной запятыми на отдельные строки: http://ideone.com/rhNXq ?
PS: strtok не признаю по идеологическим причинам - она меняет анализируемую строку, что меня крайне пугает, хотя в моем конкретном случае это не мешает.
PPS: безотносительно к strtok, в функции было минимум две ошибки - отсутствие проверки на выход за пределы буфера и попадание eol в последнюю строку (девайсина, с которой приходит строка, терминирует ее \r)
PS: strtok не признаю по идеологическим причинам - она меняет анализируемую строку, что меня крайне пугает, хотя в моем конкретном случае это не мешает.
PPS: безотносительно к strtok, в функции было минимум две ошибки - отсутствие проверки на выход за пределы буфера и попадание eol в последнюю строку (девайсина, с которой приходит строка, терминирует ее \r)
no subject
no subject
В функции решительно неправильно все, начиная от сигнатуры, продолжая возвращаемыми значениями и заканчивая реализацией.
Я бы проголосовал убить это кадавра, неудовлетворенного полностью.
no subject
Приводите примеры, как правильно :)
no subject
Впрочем, я код не проверял и набросал его прямо здесь.
no subject
Проверки параметров и выход из цикла, да, надо исправить.
А вот насчет возвращаемых значений - почему именно так: 0 и -1?
Я, когда писал, ориентировался на что-то вроде: 0 (false) - завершение работы, 1 (true) - продолжение.
Стандартные же true и false вроде только в C99 появились.
no subject
2) true и false не существуют до тех пор, пока не существует типа bool. Тот, кто указывает #define true .... - тот является клиническим мудаком.
3) если надо найти все последовательности, следует просто вызывать функцию в цикле