metaclass: (Default)
[personal profile] metaclass
Кошерен ли такой код для разбиения строки, разделенной запятыми на отдельные строки: http://ideone.com/rhNXq ?

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

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

Date: 2012-04-22 09:12 pm (UTC)
From: [identity profile] metaclass.livejournal.com
У меня там не только первое вхождение, а перебирает все вхождения. Т.е.я специально source_start модифицирую.

Проверки параметров и выход из цикла, да, надо исправить.
А вот насчет возвращаемых значений - почему именно так: 0 и -1?
Я, когда писал, ориентировался на что-то вроде: 0 (false) - завершение работы, 1 (true) - продолжение.
Стандартные же true и false вроде только в C99 появились.

Date: 2012-04-22 09:29 pm (UTC)
From: [identity profile] slonik-v-domene.livejournal.com
1) Потому, что ожидаемое поведение -1 - ошибка, а 0 и больше - успех.
2) true и false не существуют до тех пор, пока не существует типа bool. Тот, кто указывает #define true .... - тот является клиническим мудаком.
3) если надо найти все последовательности, следует просто вызывать функцию в цикле

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 16th, 2025 10:20 am
Powered by Dreamwidth Studios