c语言求统计字数的程序求解释
展开全部
我想我就按照你的问题来给你回答吧。
1:bool inword = false;
这句话其实就是一个标志。这个题目是按照一个一个的单词数来处理的,也就是说每次输入一个完整的单词,就n_words会增加,但是它的输入是用getchar()一个字符一个字符来处理的。它这个标志的意思就是来标记当前的字符是不是正在一个单词的输入中,举个例子说就是:我输入input这个单词。当我输入i的时候,因为不是空格而且正在开始一个单词中,所以就执行if(!isspace(c)&&!inword),这个是一个新单词的开始。然后inword置为true,n_words++;
2.在第一问中已经基本上解释了这个问题了。不明白可以追问哈,
3.prev='\n';我看了看,他之所以要赋值为\n与循环的关系不大,但是因为后面有这句话if(prev!='\n')p_lines=1; 他之所以开始赋值为\n,是为了排除刚刚输入就是|,如果这样就进不了循环。
我先这么解释,你先看一下。因为要举例子说比较明白。
4.至于建议的话,我不知道你会不会debug,如果不会的话,我建议你简单学习一下。这样子就可以一步一步的跟进程序,知道每句话都是什么意思了。
1:bool inword = false;
这句话其实就是一个标志。这个题目是按照一个一个的单词数来处理的,也就是说每次输入一个完整的单词,就n_words会增加,但是它的输入是用getchar()一个字符一个字符来处理的。它这个标志的意思就是来标记当前的字符是不是正在一个单词的输入中,举个例子说就是:我输入input这个单词。当我输入i的时候,因为不是空格而且正在开始一个单词中,所以就执行if(!isspace(c)&&!inword),这个是一个新单词的开始。然后inword置为true,n_words++;
2.在第一问中已经基本上解释了这个问题了。不明白可以追问哈,
3.prev='\n';我看了看,他之所以要赋值为\n与循环的关系不大,但是因为后面有这句话if(prev!='\n')p_lines=1; 他之所以开始赋值为\n,是为了排除刚刚输入就是|,如果这样就进不了循环。
我先这么解释,你先看一下。因为要举例子说比较明白。
4.至于建议的话,我不知道你会不会debug,如果不会的话,我建议你简单学习一下。这样子就可以一步一步的跟进程序,知道每句话都是什么意思了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询