| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 285 人关注过本帖
标题:这段统计单词数量的代码有不理解之处,请指教。
只看楼主 加入收藏
自由荣耀
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-11-18
收藏
 问题点数:0 回复次数:1 
这段统计单词数量的代码有不理解之处,请指教。
1 #include<stdio.h>
2 #include<ctype.h>
3 #include<stdbool.h>
4 #define STOP '|'
5 int main(void)
6 {
7 char c,last;//这个地方分别定义了要输入的字符和停止符前一个字符
8 int n_line=0,n_word=0,p_line=0;//此处定义需要计算的行数、单词数以及不完整行数
9 bool inword=false;//此处书中注释说,“如果字符c在一个单词中,则inword等于true”
我非常不能理解此处为何要将iword设置为false,我尝试设置过 true,并将第15行的!运算符去掉,20行的inword变成!inword。 输出结果只统计了字符数量,而不是单词数量,这是为何?
10 printf("please input your sentence:\n");
11 while((c=getchar())!=STOP)
12 {
13 if(c=='\n')
14 n_line++;
15 if(!isspace(c)&&!inword)
16 {
17 inword=true;
18 n_word++;
19 }
20 if(isspace(c)&&inword)
21 {
22 inword=false;
23 last=c;
24 }
25 }
26 if(last!='\n')
27 p_line=1;
28 printf("words=%d,lines=%d,partial lines=%d",n_word,n_line,p_line);
29 return 0;
30 }
搜索更多相关主题的帖子: include false 单词 统计 
2015-11-18 21:40
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
改完后再对调17,22行,应该又可以得到答案了,inword其实就是判断当前字符是否读到空格字符的一个开关标志。

我们都在路上。。。。。
2015-11-18 22:31
快速回复:这段统计单词数量的代码有不理解之处,请指教。
数据加载中...
 
   



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

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