Я работаю над вопросом, который требует, чтобы я напечатал строку с field-number
в этой позиции. Строки следует читать из файла.
file.txt
C is a language.
lex lexical analyser
(blank line)
gcc is good
Если field-number
равно 2 (т.е. второе слово в предложении). Программа должна вывести
is
lexical
(NULL)
is
Я написал функцию, но не думаю, что она верна и что она будет работать во всех случаях. Он должен обрабатывать лишние пробелы или переводы строк.
while (fgets(buffer, MAX, file) != NULL) {
for (int i = 1; i < strlen(buffer); i++) {
if (count == field_number - 1) {
int j = i;
while (j < strlen(buffer) && buffer[j] != ' ') {
printf("%c", buffer[j++]);
}
printf("\n");
count = 0;
break;
}
if (buffer[i] == ' ' && buffer[i - 1] != ' ') {
count++;
}
}
}
Я новичок. Этот код должен быть легким для понимания.