猿问

C语言新手问题!

#include<stdio.h>

#include<stdbool.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;//如果C在单词中,inword 等于true

printf("Enter text to be analyzed (| to terminate):");

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, limes = %d,",n_chars,n_words,n_lines);

printf("partial lines = %d\n",p_lines);

return 0;

}

输入:

 Reason is a

powerful servant but

an inadequate master.

|

问:

从while开始,这个循环是 从输入的内容中 一个字符一个字符的循环一遍?还是直接整体开始循环的?


知邪
浏览 1375回答 1
1回答
随时随地看视频慕课网APP
我要回答