Как подсчитать количество слов, если пользователь вводит несколько строк / пробелов? - PullRequest
0 голосов
/ 09 мая 2018

У меня есть массив символов, который содержит то, что пользователь ввел. Как бы я посчитал слова? Пользователь может делать что-то сумасшедшее, например:

hello this
               is a test
   how are
you today?

Так что количество слов здесь должно быть 9, но моя программа сообщает мне 23. Почему это не работает? Это подсчет пробелов, но я учел это с sentence_entered[i + 1] != ' '

Мой код:

int i = 0;    
while (sentence_entered[i] != '\0') {

        if (
            (sentence_entered[i] == ' ' ||
            sentence_entered[i] == '\n') &&
            (sentence_entered[i + 1] != ' ' ||
            sentence_entered[i + 1] != '\n')
           ) {
            words += 1;
    }
i++
}

1 Ответ

0 голосов
/ 09 мая 2018

Отрицание a || b равно !a && !b.

Ваше состояние должно читаться:

       (sentence_entered[i] == ' ' ||
        sentence_entered[i] == '\n') &&
        (sentence_entered[i + 1] != ' ' &&
        sentence_entered[i + 1] != '\n')
...