关于c语言字数统计问题!!!
#include<stdio.h>
#include<ctype.h>
#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;
printf("Enter text to analyzed(| to quit):\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 liness=%d,",n_chars,n_words,n_lines);
printf("partial lines=%d\n",p_lines);
return 0;
}
1.if(!isspace(c)&&!inword)
{
inword=true;
n_words++;
}
if(isspace(c)&&inword)
inword=false;
这一段代码是什么意思,尤其是isPrime在这里设么具体作用,解释具体点谢谢。两个if语句的条件分别是什么意思?
2.换句话说,如果不看这个程序,请解释一下怎么统计字数!!!!!!!!!!!!!!!!!!!!!!!!!
给的分多希望大家多多帮助。
[解决办法]
1.if(!isspace(c)&&!inword)
{
inword=true;
n_words++;
}
if(isspace(c)&&inword)
inword=false;
这一段代码是什么意思
第一个if 条件判断 如果读入的字符c不是空白字符 并且 当前字符不处于单词中间(!inword), 那么说明 这个字符c是一个单词的开始。
然后执行
inword=true; // 设置标志,表示找到一个新词的开始
n_words++; // 单词数目++
if(isspace(c)&&inword)
inword=false;
第二个if 条件判断 读入的字符c如果为空白字符 并且 之前找到一个新词的开始。
这说明这个空白字符c是一个单词的结尾后的第一个空白字符。
于是, 设置inword=false; // 清楚 新单词开始标志
2. 如果你看懂上面两个判断,应该就清楚怎么统计的了。
简单说一下:
a: 找一个单词开头。
b: 判断读入的字符是否是连续的。
c: 如果遇到空白字符,连续性就被中断,这就说明一个词完整了。
d: goto a:
关于c语言字数统计有关问题!
关于c语言字数统计问题!!!#includestdio.h#includectype.h#define STOP |int main(void){char ccha
