gpt4 book ai didi

c - C语言中如何统计多行单词数?

转载 作者:行者123 更新时间:2023-11-30 20:39:25 25 4
gpt4 key购买 nike

所以我有点卡住了,计算空格不再有帮助,因为它总是留下一个单词未被计算。我无法从 1 开始变量,因为如果根本没有单词怎么办?

这是我到目前为止的代码

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

int main(void){
char ch;
char character;
char prvs;
unsigned long int linecount = 0;
unsigned long int charcount = 0;
unsigned long int wordcount = 0;
//int i = 0;

while((character=getc(stdin)) != EOF){
//char n[] ="\n";
if(character== '\n'
linecount += 1;
/*
if(character==' ' || character=='\n'){
if(character=='\n'
wordcount +=2;
else
wordcount += 1;
}*/
if(character != ' ' && prvs == ' ')
wordcount += 1;
charcount += 1;
prvs = character;
}//TEST
printf("CHAR: %lu WORD: %lu LINE: %lu\n", charcount, wordcount, linecount );
return 0;
}

这是我测试它的文件

hello world
hi there
bye

这是我的输出

CHAR: 25 WORD: 2 LINE: 3

最佳答案

您应该使用:

    if(!isspace(character) && isspace(prvs)){

而不是

    if(character != ' ' && prvs == ' '){

这将负责计算换行符之后开始的单词数。它还将负责处理输入中存在的任何制表符。

您还必须添加逻辑来计算第一个单词。为此,您可以将 prev 初始化为:

char prev = '\0';

并更改行

    if(!isspace(character) && isspace(prvs)){

    if(!isspace(character) && (isspace(prvs) || prvs == '\0') ){

关于c - C语言中如何统计多行单词数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26637947/

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