如果用户输入多行/空格,如何计算单词数?

Zoe*_*kov 0 c arrays if-statement while-loop

我有一个char数组,其中包含用户输入的内容.我怎么算数字呢?允许用户做一些疯狂的事情:

hello this
               is a test
   how are
you today?
Run Code Online (Sandbox Code Playgroud)

所以这里的单词数量应为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++
}
Run Code Online (Sandbox Code Playgroud)

Pas*_*uoq 5

否定a || b!a && !b.

你的病情应该是:

       (sentence_entered[i] == ' ' ||
        sentence_entered[i] == '\n') &&
        (sentence_entered[i + 1] != ' ' &&
        sentence_entered[i + 1] != '\n')
Run Code Online (Sandbox Code Playgroud)