Как узнать, находится ли слово в конце строки в C - PullRequest
0 голосов
/ 21 сентября 2019

Так что мне нужно решить проблему, когда я должен читать слова из файла и при этом иметь возможность распознавать, находится ли слово в конце строки.Например:

This is a test file
I need to distinguish every word
and still be able to print out every words that are at the end of a line

Я пытался использовать:

while(scanf("%s", string) != EOF){
len = strlen(string);
if (string[len] == '\n'){
printf("%s is a word at the end of a line", string);
}
}

, но, похоже, ничего не работает должным образом.Может ли кто-нибудь мне помочь?

Редактировать 1: Я пробовал

if (string[len-1] == '\n')

, но вместо этого он дает последний символ слова.Например, слово string [len-1] для «file» - это «e», хотя это слово в конце строки 1

Ответы [ 2 ]

0 голосов
/ 21 сентября 2019

Попробуйте использовать scanf ("% [^ \ n]") вместо% s, чтобы вы могли читать до конца строки, после чего вы читали свою строку от конца до первого пробела, чтобы получить последнее слово

0 голосов
/ 21 сентября 2019

Ваш scanf вызов читает слова, возвращая их каждый раз.Он пропускает как пробелы, так и переводы строк, поэтому вы не можете посмотреть на одно из слов, чтобы увидеть, было ли оно в конце строки.Вам нужен другой подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...