Я пытался вынуть отдельные цифры из входной строки, как 1 2 3 4,5 6 7 8,9 10 11 12 в программе c путем разделения с помощью strtok() функция. Для этого я написал ниже программирование, но он читал до первой запятой , разделитель (Примечание: размер ввода может варьироваться. Как в данном примере запятая после 4 цифр, но она может быть после k (5,6,7 и т. Д.) Цифр основанные на предоставлении тестовых ящиков).Невозможно разделить строку ввода из заданного формата в c?
fgets(str,80,stdin);
/* read str with comma(,)delimiter */
token = strtok(str, ",");
/* walk through other tokens */
while(token != NULL)
{
// read token string with space delimiter
token2 = strtok(token, " ");
while(token2 != NULL)
{
printf("%s \n", token2);
token2 = strtok(NULL, " ");
}
token = strtok(NULL, ",");
}
Вы ничего не делаете с результатом некоторых вызовов 'strtok', и вы передаете неправильный аргумент указателя. Вы должны совершать повторные вызовы с указателем 'NULL', пока' strtok' сам не вернет 'NULL'. Кроме того, вы должны добавить '\ n' в строку разделителя, так как' fgets' сохраняет завершающую 'новую строку'. –
Каков ожидаемый результат простой тестовой программы, которая обрабатывает введенный вход? Каждая цифра, каждый номер, каждая группа, их сумма? Неясно. –