对于文本文件,常见的编码格式有ANSI码(无格式,但对于中文为GB2312,每个汉字三个字节),UTF-8(每个汉字2个字节),unicode等。现在主要分析ANSI码和UTF-8编码方式下,如何统计各种字符统计问题。

先进行分析:

ANSI编码方式

UTF-8编码方式

从上面可以看出ACSII码的编码方式,一个汉字2个字节,并且输出他的补码后两位均为负数;UTF-8的编码方式,一个汉字3个字节,输出其补码三位数字均为负数。依据上面的结论,就可以对汉字进行统计,先判断文本的编码方式,然后运用相应的方法进行计算即可。

ANSI码编码方式

UTF-8码编码方式

//code(ANSI)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MAX 20typedef struct Statistics{int total;int upper;int lower;int number;int blank;int character;int other;
}Statis;int main()
{Statis a;/*初始化*/a.blank = 0;a.character = 0;a.lower = 0;a.number = 0;a.other = 0;a.total = 0;a.upper = 0;FILE* fp = NULL;printf("请输入文件名:\n");char filename[MAX],ch;scanf("%s",filename);if ((fp = fopen(filename, "r")) == NULL) {perror("the file fail to read");system("pause");//暂停显示exit(1);}ch = fgetc(fp);int tmp = 0;while(!feof(fp)){//printf("%d ",ch);a.total++;if(ch >= 'A' && ch <= 'Z'){a.upper++;}else if(ch >= 'a' && ch <= 'z'){a.lower++;}else if(ch >= '0' && ch <= '9'){a.number++;}else if(ch == ' '){a.blank++;}else if((int)ch<0){tmp++;}else{a.other++;}ch = fgetc(fp);}a.character = tmp / 2;
//ANSI:每个汉字算成了两个个符,所以总字符数应该减去字符个数
//UTF-8:每个汉字算成了三个个符,所以总字符数应该减去2*字符个数a.total -= a.character;printf("这篇文章中共有%d个字符\n大写英文字符:%d\n小写英文字符:%d\n数字字符:%d\n空格字符:%d\n汉字字符:%d\n其他字符:%d",a.total, a.upper, a.lower, a.number, a.blank, a.character, a.other);fclose(fp);return 0;
}

统计各种字符数量(包括汉字)相关推荐

  1. python统计汉字个数是_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  2. python统计中文字符的个数_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  3. python怎么统计多少字符_python统计中文字符数量的两种方法

    方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...

  4. python统计中文字符数量

    方法一: def str_count(str):'''找出字符串中的中英文.空格.数字.标点符号个数'''count_en = count_dg = count_sp = count_zh = cou ...

  5. python统计中文字符数量_Python实现统计文本文件字数的方法

    本文实例讲述了Python实现统计文本文件字数的方法.分享给大家供大家参考,具体如下: 统计文本文件的字数,从当前目录下的file.txt取文件 # -*- coding: GBK -*- impor ...

  6. java统计文件字符数量_Java统计文件注释个数和注释字符数

    我把文件一行一行地存入到了动态数组 list中,然后删除list里面的注释和输出语句.其中countNote是算注释个数的,charInNote是算注释的总字符数的.可是最后得到的list存在很多问题 ...

  7. Tinymce 编辑器中字数统计问题,统计所有字符(包括数字,字母。。。)

    问题:测试人员发现 在使用 tinymce 编辑器中字数统计不准确问题,只统计了中文字的字数,数字和字母被忽略了.... 具体通过复现发现,的确有这个问题,但是我们通过切换右下角发现是可以切换统计所有 ...

  8. python3 字符串 统计子字符数量 内置方法count

    实例: >>> a = "good" >>> a 'good' >>> a.count("g") ## 统 ...

  9. python统计汉字个数是_使用 Python 统计中文字符的数量

    使用 Python 统计中文字符的数量 方法一,排除法 假设只有中英文字符: import string def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数' ...

  10. python统计中文字符_使用 Python 统计中文字符的数量

    使用 Python 统计中文字符的数量 方法一,排除法 假设只有中英文字符: import string def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数' ...

最新文章

  1. IO实现账号密码校验
  2. Https 客户端与服务器交互过程梳理(转)
  3. wxWidgets:wxCollapsiblePaneEvent类用法
  4. UDP协议下内网与公网IP进行发送消息,一对多.且选择不同的客户端发送消息
  5. android中访问手机存储空间,android – 访问手机内部存储以推入SQLite数据库文件...
  6. 【APICloud系列|8】APICloud下载编译包安装,点击图标打不开,提示很抱歉,程序出现异常,即将退出
  7. Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
  8. YARN的服务库和事件库
  9. 类名 窗口句柄 结束进程
  10. springcloud服务网关-gateway
  11. 物联卡与sim卡有什么差别性的不同
  12. 事件冒泡、事件捕获、事件委托
  13. Struts2+Spring4+Hibernate4项目整合
  14. 【货干】Idea 安装 MyBatis 插件
  15. 黑马程序员2022新版python教程补充(P61)
  16. 【CE入门教程】使用CE 分析扫雷,查找雷数、笑脸、计时器的内存地址
  17. The OpenGL® Shading Language, Version 4.60.7 翻译第一章
  18. 你的饿了么订单又超时啦!
  19. ali arthas 火焰图_手把手教你看懂Chrome火焰图!(调试性能必备)
  20. error: The folder you are executing pip from can no longer be found.

热门文章

  1. 自己搭建微信小程序服务器,微信小程序搭建自己的Https服务器
  2. CVPR2004/风格分解:Separating Style and Content on a Nonlinear Manifold在非线性流形上分离样式和内容
  3. 2021年教师资格证 科目三 高中数学 课程标准 简答题
  4. 单核CPU使用多线程能否提高效率?
  5. windows下icns转png或ico
  6. ani转换ico文件
  7. 个推大数据:3月线上消费率先恢复,在线购物APP迎来春天
  8. Lucene 深入学习(3)Lucene索引初识
  9. 第一章 马克思主义哲学是科学的世界观和方法论
  10. 高斯消元解线性方程组