`
nanjingjiangbiao_T
  • 浏览: 2597214 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

统计大容量文本里面单词的函数(方法)

 
阅读更多
#include <stdio.h>
 
#define VALIDATE_IS_STRING(f) do{ \
 while ((c = getc(f)) != EOF) {    \
  if (validate_character_is_space(c)) { \
            if (word) {   \
                wcount++; \
            } \
            word = 0; \
        } else if((c >= 65 && c <= 90) || (c >= 97 && c <= 122)) { \
            word = 1; \
        } \
    } \
}while(0)
 
#define PRINTI(x)   printf("The words number  is: %d\n", x)
 
static FILE * open_file_by_filename(char *filename) {
 FILE *fp= NULL;
 if ((fp = fopen(filename, "r")) == NULL) {
  printf("Can not open file, please check your filename!\n");
  return (NULL);
 }
 return (fp);
}
 
static unsigned int validate_character_is_space(int ch) {
 return (unsigned int)(ch - 9) < 5u || ch == ' ';
}
 
static int get_string_number_in_file(FILE *filename) {
 int i = 0, iterate = 1;
 register int c;
 register int word = 0;
 long int wcount = 0;
 VALIDATE_IS_STRING(filename);
 return (wcount);
}
 
int main(int argc, char **argv) {
 FILE *fd;
 int count;
 if (argc < 2|| argc >=3) {
  printf("Invalid argument,please set right argument !\n");
  return (-1);
 }
 if ((fd = open_file_by_filename(argv[1])) == NULL)
  return (-1);
 count = get_string_number_in_file(fd);
 PRINTI(count);
 fclose(fd);
 return (0);
}

分享到:
评论

相关推荐

    Excel百宝箱9.0无限制破解版.rar

    【字母大小写转换】:将选区的单词、字母在大写小写、首字母大写之间转换 【中英翻译】:将选区进行中英互译,如果选择英文则转换成中文;如果选择中文则转换成英文 【小写金额转大写】:将小写金额批量转换成...

    Exce百宝箱——2012版本.rar

    【字母大小写转换】:将选区的单词、字母在大写小写、首字母大写之间转换 【中英翻译】:将选区进行中英互译,如果选择英文则转换成中文;如果选择中文则转换成英文 【小写金额转大写】:将小写金额批量转换成大写 ...

    c语言经典案例

    实例010 3个数由小到大排序 11 实例011 猴子吃桃 13 实例012 阳阳买苹果 14 第3章 算法入门 15 实例013 任意次方后的最后三位 16 实例014 计算某日是该年的第几天 16 实例015 婚礼上的谎言 18 实例016 百元买百鸡 19...

    word使用技巧大全

    ★在Word中用另类方法复制文本 15 ★去除自动添加的超级链接 15 ★快速插入一对大括号 15 ★在Word2002中选择多个文档区域 15 ★禁用智能标记 15 ★WORD字体随身携带 15 ★为WORD文本加注解 16 ★快速输入特定的短语...

    明日科技C#开发入门及项目实战

    实例179 使用线程实现大容量数据的计算 实例180 使用多线程制作端口扫描工具 实例181 使用线程扫描局域网ip地址 实例182 使用线程休眠控制图片以百叶窗效果显示 实例183 使用线程控制向窗体中拖放图片并显示 实例184...

    Delphi开发范例宝典目录

    实例296 SQL语句的应用方法 392 实例297 SQL语句的模糊查询 393 实例298 高级Like语句 394 实例299 多功能查询过滤器 396 9.2 查询变量 401 实例300 利用变量查询字符串数据 402 实例301 利用变量查询...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例179 使用线程实现大容量数据的计算 342 实例180 使用多线程制作端口扫描工具 343 实例181 使用线程扫描局域网ip地址 345 实例182 使用线程休眠控制图片以百叶窗效果显示 347 实例183 使用线程控制向窗体中拖放...

    Excel百宝箱

    【字母大小写转换】:将选区的单词、字母在大写小写、首字母大写之间转换 【中英翻译】:将选区进行中英互译,如果选择英文则转换成中文;如果选择中文则转换成英文 【小写金额转大写】:将小写金额批量转换成大写 ...

    UbuntuChina12

    一定容量限制的文件 290 11.1.5 使用find命令找出并删除 ??长期闲置不用的文件 290 11.1.6 使用find命令找出并删除 ??core文件 292 11.1.7 使用ls命令检测文件的 ??大小 292 11.2 采用标准工具备份与恢复数据 292 ...

    Ubuntu权威指南(2/2)

    一定容量限制的文件 290 11.1.5 使用find命令找出并删除 ??长期闲置不用的文件 290 11.1.6 使用find命令找出并删除 ??core文件 292 11.1.7 使用ls命令检测文件的 ??大小 292 11.2 采用标准工具备份与恢复数据 292 ...

    Ubuntu权威指南(1/2)

    一定容量限制的文件 290 11.1.5 使用find命令找出并删除 ??长期闲置不用的文件 290 11.1.6 使用find命令找出并删除 ??core文件 292 11.1.7 使用ls命令检测文件的 ??大小 292 11.2 采用标准工具备份与恢复数据 292 ...

Global site tag (gtag.js) - Google Analytics