C 字数计算程序打印不同的字数

C 字数计算程序打印不同的字数,c,C,我试图数一数单词、行、字符、元音、大小写等。。从一个.txt文件中,我得到了不同的结果。。当我纯粹计算行数和字符数时,它会打印出正确的结果。但当我加入大写和小写的计数时,它会打印出大量的行和字符计数(例如32974)。我猜我的逻辑有错误?谢谢 #include <stdio.h> #include <ctype.h> int main(int argc, const char *argv[]) { int nextChar = getchar(); i

我试图数一数单词、行、字符、元音、大小写等。。从一个.txt文件中,我得到了不同的结果。。当我纯粹计算行数和字符数时,它会打印出正确的结果。但当我加入大写和小写的计数时,它会打印出大量的行和字符计数(例如32974)。我猜我的逻辑有错误?谢谢

#include <stdio.h>
#include <ctype.h>

int main(int argc, const char *argv[])
{
    int nextChar = getchar();

    int lines, characters, uppercase,lowercase;

    while (nextChar != EOF)
    {
        if (isalpha(nextChar) || isblank(nextChar) || ispunct(nextChar))
        {
            characters++;
        } else if (isspace(nextChar)){
            characters++;
            lines++;
        }

        if(isalpha(nextChar) && isupper(nextChar)){
            uppercase++;
        } else if (isalpha(nextChar) && islower(nextChar)){
            lowercase++;
        }
        nextChar = getchar();
    }
    printf("%d lines\n",lines);
    printf("%d characters\n",characters);
    printf("%d lowercase\n",lowercase);
    printf("%d uppercase\n",uppercase);
}
#包括
#包括
int main(int argc,const char*argv[]
{
int-nextChar=getchar();
整数行,字符,大写,小写;
while(nextChar!=EOF)
{
如果(isalpha(nextChar)| | isblank(nextChar)| | ispunt(nextChar))
{
字符++;
}else if(isspace(nextChar)){
字符++;
行++;
}
if(isalpha(nextChar)和isupper(nextChar)){
大写++;
}其他如果(isalpha(nextChar)和islower(nextChar)){
小写++;
}
nextChar=getchar();
}
printf(“%d行\n”,行);
printf(“%d个字符\n”,个字符);
printf(“%d小写\n”,小写);
printf(“%d大写\n”,大写);
}

您必须将计数初始化为
0
。否则,您的程序将是格式错误的(将调用未定义的行为)


int行、字符、大写、小写介意初始化变量吗?谢谢,这么简单,我不知道怎么会错过它。我太专注于逻辑了。
int lines = 0, characters = 0, uppercase = 0,lowercase = 0;