C Primer Plus程序清单7.7中inword判读字符是否在单词中问题求大神帮助
Mr丶纪 2014-12-09 07:37:07 我是个新手,零基础,最近在自学C Primer Plus,遇到关于使用inword判断字符是否在单词中的问题理解不透
程序清单7.7
// wordcnt.c -- 统计字符、单词和行
#include<stdio.h>
#include<ctype.h>
#include<stdbool.h>
#define STOP '|'
int main(void)
{
char c; //读入字符
char prev; //前一个读入字符
int 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,p_lines);
printf("partial lines=%d\n",p_lines);
return 0;
}
1.bool inword=false;//如果c 在一个单词中,则inword等于true
这个赋值无法理解,inword怎么判断的字符是不是在一个单词中呢?
比如 isspace(c),如果c是空字符结果为真反之为假,这种书中讲到过的有明确定义的我能理解,inword怎么实现判断的呢?
2.书中说inword定义为标志,在百度上有人说这是标志变量,不懂这是什么意思,一直在看书,只看到有标识符,有系统保留关键字,标志是个什么概 念呢?怎么在书上没有学到?找了书中所有章节也没有关于这种概念的解释,求大神帮助。
各位大神们是我需要学习哪些知识才能掌握类似inword这种概念及用法?书中怎么没有?