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那里里面是什么意思? 展开
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那里里面是什么意思? 展开
2个回答
展开全部
首先,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
if (!isspace(c) && !inword) 如果c不是空格且之前的字符不是单词的一部分(即空格),那么就把n_words加一且inword置为真。如果你下一个输入的字符还是非空格,因为inword为真,所以n_words不会乱加一。
if (isspace(c) && inword) 说明如果这次输入的是空格,那么就说明一个单词的结束了,所以inword=false。
if (prev != '\n') 就是说你输入的最后一个字符不是回车,所以这最后一行也不是完整的一行了,所以 p_lines = 1
展开全部
@函数名称: isspace 函数原型: int isspace(int ch); 函数功能: 检查ch是否是空格符和跳格符(控制字符)或换行符 函数返回: 是返回1,否则返回0
就是判断If语句里面的条件成不成立罢了.....
'\n'是换行吧
下面的链接是有关ctype.h这个头文件的介绍
就是判断If语句里面的条件成不成立罢了.....
'\n'是换行吧
下面的链接是有关ctype.h这个头文件的介绍
参考资料: http://baike.baidu.com/view/2058283.htm
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询