Я использую strtok() в C для анализа строки csv.
Моя примерная строка:
str= "name1 secondname1 cin,name2 secondname2 cin"
Сначала я использую strtok с разделителем ",", а затем я разделяю строку с " ".
char delims1[] = ",";
char delims2[] = " ";
char *result1 = NULL;
char *result2 = NULL;
result1 = strtok(str, delims1);
while ( result1 != NULL ) {
result2 = strtok(result1,delims2);
while ( result2 != NULL ) {
printf("%s\n" ,result2);
}
result1 = strtok(NULL, delims1);
}
Ожидаемый результат:
name1
secondname1
cin
name2
secondname2
cin
str
иdivided
и что они содержат? Вам нужно показать этот код. Кроме того, какие результаты вы на самом деле получаете? Вы не указываете, в чем заключается ваш вопрос. - person Carey Gregory   schedule 25.03.2013strtok()
. Это плохая функция для использования почти всегда; список его ошибок разнообразен, но, в частности, вы не можете иметь два параллельных набора расщеплений, как вам кажется. Если вы должны попробовать, используйтеstrtok_r()
илиstrtok_s()
(примерно POSIX против Windows). Вы пропустили вызовstrtok()
во внутреннем циклеwhile
, поэтому, поскольку ничего не меняетсяresult2
, код переходит в постоянный цикл. Хотяstrtok()
или его семейство можно заставить работать с демонстрационными данными, его нельзя разумно использовать для общего анализа данных CSV. - person Jonathan Leffler   schedule 25.03.2013