python输入一个英文句子、统计并输出单词数_C语言实现输入多行英文句子然后统计单词数和行数,如何输入?我的代码问题在哪里?...

本文分析了C语言中统计英文句子单词数和行数时遇到的问题,主要涉及gets()函数的使用误区,以及如何正确地遍历字符串判断单词和行数。建议使用while((ch=getchar())!=EOF)的方式逐字符判断,并提供了修正后的代码示例。
摘要由CSDN通过智能技术生成

楼主试试在printf之前输出num,很大概率是等于0的。

最严重的问题:

、*(如果以下看不懂请移动至最下面,对gets()函数的分析)*、

1、gets(s)每次返回一行而不是一次性返回EOF之前的全部字符!楼主可能是这一点想错了,如果不是请看下面的分析。

2、为什么num=0? gets(s)每次读一行,s是字符串,楼主每次只判断了一个字符*p,就继续下一次循环了,输入的样例很可能会导致num=0的就是num++那句不会执行。应该再加一重循环while(*p!='\0')判断s里的每个字符。

3、每次判断一行数字,p就应该从s的开头开始,所以 char *p=s应该放在while(get(s))这个循环里面。

其他的方法我推荐用while((ch=getchar())!=EOF),这个你的思路挺符合的,一个字符一个字符判断,你可以去搜这句,挺经典的。

int getchar ( void)

返回值为用户输入的ASCII码,读到文件末尾返回EOF,EOF的值是-1

从方法上说,可以用空格或换行判断单词数,'\n'判断行数。按照题目来说应该是没有句号或逗号的。

比如

char ch;

while((ch=getchar())!=EOF){

if(ch=='\n') {

lineNum++;

wordNum++;

}

else if

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值