如何计算单词列表中每个单词中的字母?

Cod*_*ium 0 c

由于代码是当前的,它输出:

hjk
hg
kjgj
Word 0: 12
Word 1: 0
Word 2: 0
Run Code Online (Sandbox Code Playgroud)

它应该是:

Word 0: 3
Word 1: 2
Word 2: 4
Run Code Online (Sandbox Code Playgroud)

我不知道我做错了什么,这里是代码:

#include <stdio.h>

#define MAX_WORDS_COUNT 10

main()
{
    int wordsLength[MAX_WORDS_COUNT];
    int i, c, inspace = 0, currWord = 0;
    for (i = 0; i < MAX_WORDS_COUNT; i++) 
        wordsLength[i] = 0;

    while ((c = getchar()) != EOF) {
        if (c != ' ' || c != '\t' || c != '\n') {
            wordsLength[currWord]++;
            inspace = 0;
        } else {
            if (inspace == 0)
                currWord++;
            inspace = 1;
        }   
    }

    for(i = 0; i < MAX_WORDS_COUNT; i++)
        printf("Word %d: %d\n", i, wordsLength[i]);


}
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 6

    if (c != ' ' || c != '\t' || c != '\n') {
Run Code Online (Sandbox Code Playgroud)

你应该使用&&.你有3个相互排斥的条件,并且正在对它们进行ORing,这意味着所有条件都满足这一要求.

    if (c != ' ' && c != '\t' && c != '\n') {
Run Code Online (Sandbox Code Playgroud)

将工作.