这段c代码是什么意思 c primer plus里的,该怎么解决
这段c代码是什么意思 c primer plus里的
是c primer c里面的 ,第2个 if 和第三个 if不懂
#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; //不完整的行数
int inword = 0; //如果c在一个单词中,则inword等于1
printf ("Enter text to be analyzed (exit to terminate): \n");
prev = '\n';
while ( (c = getchar () ) != STOP)
{
n_chars++; //统计字符
if ( c == '\n' )
n_lines++; //统计行
if ( !isspace (c) && !inword )
{
inword = 1; //开始一个新单词
n_words++; //统计单词
}
if ( isspace (c) && inword )
inword = 0; //到达单词的尾部
prev = c; //保存字符值
}
if ( prev != '\n' )
p_lines = 1;
printf ("charcters = %ld .words = %d, lines = %d." ,n_chars ,n_words,n_lines);
printf ("partial lines = %d\n" ,p_lines);
return 0;
}
------解决方案--------------------
inword = 1; //表示一个新单词开始
inword = 0; //表示这个单词已经结束了
if ( !isspace (c) && !inword )
{
inword = 1; //开始一个新单词
n_words++; //统计单词
}
表示 如果 这个c不是空的 并且 上一个单词已经结束了
那么单词个数就加一个,将inword标志 置1
是c primer c里面的 ,第2个 if 和第三个 if不懂
#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; //不完整的行数
int inword = 0; //如果c在一个单词中,则inword等于1
printf ("Enter text to be analyzed (exit to terminate): \n");
prev = '\n';
while ( (c = getchar () ) != STOP)
{
n_chars++; //统计字符
if ( c == '\n' )
n_lines++; //统计行
if ( !isspace (c) && !inword )
{
inword = 1; //开始一个新单词
n_words++; //统计单词
}
if ( isspace (c) && inword )
inword = 0; //到达单词的尾部
prev = c; //保存字符值
}
if ( prev != '\n' )
p_lines = 1;
printf ("charcters = %ld .words = %d, lines = %d." ,n_chars ,n_words,n_lines);
printf ("partial lines = %d\n" ,p_lines);
return 0;
}
------解决方案--------------------
inword = 1; //表示一个新单词开始
inword = 0; //表示这个单词已经结束了
if ( !isspace (c) && !inword )
{
inword = 1; //开始一个新单词
n_words++; //统计单词
}
表示 如果 这个c不是空的 并且 上一个单词已经结束了
那么单词个数就加一个,将inword标志 置1