C语言里有inword这个函数吗?

#include<stdio.h>#include<ctype.h>//为isspace()提供函数原型#include<stdbool.h>//为bool,true和f... #include<stdio.h>#include <ctype.h> //为isspace()提供函数原型#include <stdbool.h> //为bool, true和false提花定义#define STOP '|'int main (void){ char c; //读入字符 char prev; //前一个读入字符 long n_chars = 0L; //字符数 int n_lines = 0; //行数 int n_words = 0; //单词数 int p_lines = 0; //不完整的行数 bool inword = false; //如果C在一个单词中,则inword等于true
printf("Enter text to be analyzed (| to terminate): \n"); prev = '\n'; //用于识别完整的行 while ((c = getchar()) != STOP) { n_chars++; if(c == '\n') n_lines++; if (!isspace(c) && !inword) { inword = true; // 开始一个新单词 n_words++; //统计单词 } if(isspace (c) && inword) inword = false; //到达单词的尾部 prev = c; //保存字符值 } if(prev != '\n') p_lines = 1; printf("characters = %ld, words = %d, lines = %d,", n_chars, n_words, n_lines); printf("partial lines = %d\n", p_lines); return 0;}

bool inword = false; //如果C在一个单词中,则inword等于true
这里怎么解释?
还有第二,第三个if那里里面是什么意思?
展开
 我来答
Joylae
2012-06-29 · TA获得超过178个赞
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:132万
展开全部
首先,C里面没有inword这个函数,在这里inword只是有一个变量,用于说明是否之前的输入是在一个单词内。
if (!isspace(c) && !inword) 如果c不是空格且之前的字符不是单词的一部分(即空格),那么就把n_words加一且inword置为真。如果你下一个输入的字符还是非空格,因为inword为真,所以n_words不会乱加一。
if (isspace(c) && inword) 说明如果这次输入的是空格,那么就说明一个单词的结束了,所以inword=false。
if (prev != '\n') 就是说你输入的最后一个字符不是回车,所以这最后一行也不是完整的一行了,所以 p_lines = 1
百度网友a5c7e05ea
2012-06-28 · 超过10用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:33.9万
展开全部
@函数名称: isspace   函数原型: int isspace(int ch);   函数功能: 检查ch是否是空格符和跳格符(控制字符)或换行符   函数返回: 是返回1,否则返回0
就是判断If语句里面的条件成不成立罢了.....
'\n'是换行吧
下面的链接是有关ctype.h这个头文件的介绍

参考资料: http://baike.baidu.com/view/2058283.htm

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式