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;
}


本题的难点在单词的统计

相关文章推荐

统计输入中的行数,单词数,字符数

   源于《The C Programming Language》P14的一道例题:    统计输入中的行数,单词数,字符数(单词的定义:其中不包括空格,制表符,换行符的字符序列)          ...
  • roma823
  • roma823
  • 2011年04月14日 10:30
  • 1151

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

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

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

c语言实现统计单词个个数

编程实现,从键盘上输入一行字符,统计其中单词的个数。 其中:单词以空格分隔,且空格的个数至少一个。 要求:数组类型为字符型       使用scanf输入一行字符。       输出:单词的个数。  ...

Java 文件统计:编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目

package text6; import java.util.*; import java.io.File; import java.io.FileReader; import javax.sw...

java统计一个文件的字符数,单词数,行数

 package A9chapter; import java.io.BufferedReader; import java.io.File; import java.io.FileInp...
  • ycy0706
  • ycy0706
  • 2015年05月03日 10:37
  • 2833

C语言实现对输入中的行数,单词个数,字符的个数进行计数

/* * 时间:2011年6月5日8:38:52 * 作者:李灿辉 * 程序功能:对输入中的行数,单词个数,字符的个数进行计数 */ #include #define IN 1 ...

unix中统计行数,字符和字数

wc命令的功能为统计指定文件中的字符数、字数、行数, 并将统计结果显示输出。 c 统计字符数。 l 统计行数。 w 统计字数。 下面就是一个示例[wz@supportserver-51 jd]...

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

解题思路: 关键:怎样确定出现一个新单词 方法:从第一个字符逐个进行检查,判断此字符是否为新单词的开头,如果是num+1,最后num的值就是单词总数判断是否出现新单词,可以由是否由空格出现来决定(连续...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c语言中统计输入的行数、单词数与字符数
举报原因:
原因补充:

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