gpt4 book ai didi

c - 字计数器在 C 中得到负值

转载 作者:太空宇宙 更新时间:2023-11-04 05:37:40 25 4
gpt4 key购买 nike

我正在尝试开发这个字计数器(以及行和字符计数器)。规则是除了由空格、制表符、换行符、分号和连字符分隔的任何内容外,所有内容都是一个词。例如: 'xyz' 'go;down​​' 'hey..howareyou' 都是 1 个词,'hey:you' 'tacos-burrito' 都是 2 个词。

我的方法如下:

#include <stdio.h>
#include <stdlib.h>

int main(){

int charHolder, result, wordCount, lineCount = 0;

int recursiveSeparatorCheck(charOther){
if(isspace(charOther)||charOther=='\t'||charOther=='\n' || charOther ==':' || charOther == '-')
return 1;
return 0;
}


while ((charHolder = getchar()) != EOF){
if(charHolder == '\n')
lineCount++;
result++;
if(recursiveSeparatorCheck(charHolder) == 1)
continue;
wordCount++;


}


printf("Number of char: %d \n", result);
printf("Number of lines: %d \n", lineCount);
printf("Number of words: %d \n", wordCount);
return (EXIT_SUCCESS);
}

当我运行我的程序并让它读取一个有 20 行和 160 个单词的文件时,它会打印以下内容:

Number of char: 1130 
Number of lines: 20
Number of words: -4195164

有人知道我做错了什么吗?感谢您的帮助!

最佳答案

您的印象似乎是此行将所有四个变量初始化为 0:

int charHolder, result, wordCount, lineCount = 0;

事实并非如此。只有 lineCount 被初始化,其余的都是未定义的值。在wordCountresult之后添加= 0来初始化它们。

关于c - 字计数器在 C 中得到负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28638238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com