你好,是要这样的效果吗,满意请采纳
#include
#include
#include
#define STOP '|'
int main(void)
{
char c;
char prev;
int n_chars=0; //字符数
int n_lines=0; //行数
int n_words=0; //单词数
int p_lines=0; //不完整的行数
bool inword = false; //如果c在一个单词中,则inword等于true
printf("请输入字符串( | 结束 ):\n");
prev='\n'; //用于识别完整的行
while(scanf("%c",&c),c!=STOP)
{
n_chars++; //单词数量 + 1,含换行
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("字符数 = %d \n单词数: = %d \n总行数 = %d\n",n_chars,n_words,n_lines);
printf("不完行 = %d\n",p_lines);
return 0;
}