c语言中统计输入的行数、单词数与字符数

原创 2014年04月24日 08:51:59

来源:《c程序设计语言》

功能需求:

写个函数,用于统计输入的行数、单词数与字符数。这里对单词的定义比较宽松,它是任何其中不包含空格、制表符或换行符的字符序列。


代码如下:

#include <stdio.h>
#define IN 1
#define OUT 0
void wc(){
    char c;
    int char_num,word_num,line_num,state;
    char_num=word_num=line_num=0;
    state=OUT;
    while((c=getchar())!=EOF){
        //不管输入的是什么字符,都需要统计
        char_num++;
        if(c=='\n'){       
            line_num++;
        }
        if(c=='\n' || c=='\t' || c==' '){
            //遇到以上字符,输入字符在单词外
                state=OUT;
        }else if(state==OUT){
        //else说明输入的不是换行,空格及制表位;换言之,就是合法的字符;
        //如果不对state进行判断,那么word_num会统计所有的合法字符
    //什么时候对word_num加1?当现在的状态是在单词外,接受到的字符是合法字符时,表示一个新的单词开始,这才要加1,还要更新状态位
            state=IN;
            word_num++;
        }
        }
 
 
    printf("line_num=%d\nword_num=%d\nchar_num=%d\n",line_num,word_num,char_num);
}
int main(){
    wc();
    return 0;
}


本题的难点在单词的统计

C语言统计输入行数、单词数、字符数

这个问题的关键在于统计单词的个数:状态的转变定义了一个单词   #include #define IN 1 #define OUT 0 main() {     int c, n...
  • cnweike
  • cnweike
  • 2011年09月15日 18:37
  • 2597

NOIP2011普及组统计单词数

题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位 置,有的还能统计出特定单词在文章中出现的次数。 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输...
  • KingKirito
  • KingKirito
  • 2016年03月15日 21:37
  • 1323

统计单词个数

题目描述 Description 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份(1...
  • sinat_34943123
  • sinat_34943123
  • 2016年09月10日 19:10
  • 428

C语言,统计输入的字符各类的个数

#include int main() { int char_num=0,int_num=0,space_num=0,other_num=0; char ch; while((...
  • LIU_YANZHAO
  • LIU_YANZHAO
  • 2016年09月03日 16:44
  • 8735

读入一个C程序,统计程序中代码、注释和空行的行数以及函数的个数和平行行数

  • 2009年09月16日 14:18
  • 86KB
  • 下载

统计录入字符串的字符总数,单词数和行数

统计录入字符串的字符总数,单词数和行数包括: 字符读取 getchar()函数的使用 *循环使用 UML序列图和流程图 离线写博客 何时停止读取 一些头文件的使用...
  • zhixi1050
  • zhixi1050
  • 2017年05月24日 23:28
  • 272

C语言统计一个字符串中单词的个数

假定每个单词用空格隔开。 例子: 输入:how are you! 输出:3 两种方法: 一: #include #include #define SIZE 20 int m...
  • abc5382334
  • abc5382334
  • 2014年05月24日 01:59
  • 38769

输入一行字符,统计有多少个单词

解题思路: 关键:怎样确定出现一个新单词 方法:从第一个字符逐个进行检查,判断此字符是否为新单词的开头,如果是num+1,最后num的值就是单词总数判断是否出现新单词,可以由是否由空格出现来决定(连续...
  • u012701023
  • u012701023
  • 2015年07月06日 19:09
  • 1724

输入一行字符,统计单词个数

#include int main() { char string[81]; int i; int num=0;//统计单词个数 int word=0;//word=0表示未出现新单词;Wor...
  • u012110719
  • u012110719
  • 2014年11月19日 21:50
  • 2395

HDU 2072 单词数 -- C++ string set 统计不同的单词数目

单词数 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submis...
  • qq_26437925
  • qq_26437925
  • 2015年09月05日 14:06
  • 849
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c语言中统计输入的行数、单词数与字符数
举报原因:
原因补充:

(最多只允许输入30个字)