| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3875 人关注过本帖
标题:大神们帮忙看一下这里计算单词个数,为什么是while(ch[i]!='\0')而不是whil ...
只看楼主 加入收藏
a2522121285
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-12-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
大神们帮忙看一下这里计算单词个数,为什么是while(ch[i]!='\0')而不是while(ch[i]!='\n')

大神们帮忙看一下这里计算单词个数,为什么是while(ch[i]!='\0')而不是while(ch[i]!='\n')
#include<stdio.h>
#define N 40
void main()
{
    char ch[N];
    int i=0, count=0,letter=0;
    printf("请输入一串英文,判断总单词个数,输入回车结束:\n");
    gets(ch);
    while(ch[i]!='\0')
    {
        if(ch[i]==' ')
        {
            letter=0;
        }
        else
        {
            if(letter==0)
            {
                count++;
                letter=1;
            }
            else
                letter=1;
        }
        i++;
    }
    printf("总单词个数是%d\n",count);
}
搜索更多相关主题的帖子: include letter count 英文 单词 
2015-12-16 08:50
zhangyangzha
Rank: 2
等 级:论坛游民
威 望:1
帖 子:9
专家分:27
注 册:2015-12-15
收藏
得分:7 
while(ch[i]!='\0')而不是while(ch[i]!='\n')
while(ch[i]!='\0')这个是接收你输入的字母  
当字符ch[i]不等于结束符'\0'时。。
字符串最后都会有一个结束符,例如,
char a[100];
scanf("%s",a);
你输入字符串china之后,那么字符串数组中
a[0]=='c', a[1]=='h'..... a[5]=='a' a[6]=='\0'
while(ch[i]!='\n')这个是判断是不是enter 如果是的话就结束
收到的鲜花
  • a25221212852015-12-16 17:53 送鲜花  3朵   附言:我很赞同
2015-12-16 09:27
a2522121285
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-12-16
收藏
得分:0 
回复 2楼 zhangyangzha
按enter键输入就结束了,那判断while(ch[i]!='\n')不也可以吗?
还是说字符数组要遇到\0才会结束存储字符。
2015-12-16 10:00
a2522121285
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-12-16
收藏
得分:0 
回复 2楼 zhangyangzha
请问能说一下如果换成\n,程序会怎样吗
2015-12-16 10:04
走在街上的猪
Rank: 2
等 级:论坛游民
帖 子:11
专家分:21
注 册:2015-10-11
收藏
得分:7 
回复 4楼 a2522121285
当换成'\n'时
当你输如一个单词,不加空格 他会显示单词数为3,也就是比原来加了两个
当你输入一个单词,加空格,无论加上一个还是两个或者更多,显示的单词数都为4

具体原因不清楚,看代码感觉单词数不应该是加2个啊,

至于'\n'和'\0'效果的区别2L讲的已经很详细了

最后,能不能有人解决为什么是比原来单词数加上了2啊- -。。。

收到的鲜花
  • a25221212852015-12-16 17:53 送鲜花  3朵   附言:我很赞同
2015-12-16 10:45
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:6 
回复 4楼 a2522121285
1,可能程序崩溃,出现内存不能访问的提示。
2,碰巧遇到内存数据为0x10,程序运行正常,但统计结果错误。
收到的鲜花
  • a25221212852015-12-16 17:54 送鲜花  3朵  

能编个毛线衣吗?
2015-12-16 10:46
a2522121285
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2015-12-16
收藏
得分:0 
谢谢各位
2015-12-16 17:54
快速回复:大神们帮忙看一下这里计算单词个数,为什么是while(ch[i]!='\0')而不是 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016781 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved