统计各种字符数量(包括汉字)
对于文本文件,常见的编码格式有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;
}
统计各种字符数量(包括汉字)相关推荐
- python统计汉字个数是_python统计中文字符数量的两种方法
方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...
- python统计中文字符的个数_python统计中文字符数量的两种方法
方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...
- python怎么统计多少字符_python统计中文字符数量的两种方法
方法一: def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数''' count_en = count_dg = count_sp = count_zh = c ...
- python统计中文字符数量
方法一: def str_count(str):'''找出字符串中的中英文.空格.数字.标点符号个数'''count_en = count_dg = count_sp = count_zh = cou ...
- python统计中文字符数量_Python实现统计文本文件字数的方法
本文实例讲述了Python实现统计文本文件字数的方法.分享给大家供大家参考,具体如下: 统计文本文件的字数,从当前目录下的file.txt取文件 # -*- coding: GBK -*- impor ...
- java统计文件字符数量_Java统计文件注释个数和注释字符数
我把文件一行一行地存入到了动态数组 list中,然后删除list里面的注释和输出语句.其中countNote是算注释个数的,charInNote是算注释的总字符数的.可是最后得到的list存在很多问题 ...
- Tinymce 编辑器中字数统计问题,统计所有字符(包括数字,字母。。。)
问题:测试人员发现 在使用 tinymce 编辑器中字数统计不准确问题,只统计了中文字的字数,数字和字母被忽略了.... 具体通过复现发现,的确有这个问题,但是我们通过切换右下角发现是可以切换统计所有 ...
- python3 字符串 统计子字符数量 内置方法count
实例: >>> a = "good" >>> a 'good' >>> a.count("g") ## 统 ...
- python统计汉字个数是_使用 Python 统计中文字符的数量
使用 Python 统计中文字符的数量 方法一,排除法 假设只有中英文字符: import string def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数' ...
- python统计中文字符_使用 Python 统计中文字符的数量
使用 Python 统计中文字符的数量 方法一,排除法 假设只有中英文字符: import string def str_count(str): '''找出字符串中的中英文.空格.数字.标点符号个数' ...
最新文章
- IO实现账号密码校验
- Https 客户端与服务器交互过程梳理(转)
- wxWidgets:wxCollapsiblePaneEvent类用法
- UDP协议下内网与公网IP进行发送消息,一对多.且选择不同的客户端发送消息
- android中访问手机存储空间,android – 访问手机内部存储以推入SQLite数据库文件...
- 【APICloud系列|8】APICloud下载编译包安装,点击图标打不开,提示很抱歉,程序出现异常,即将退出
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy (更新于2008.10.18)
- YARN的服务库和事件库
- 类名 窗口句柄 结束进程
- springcloud服务网关-gateway
- 物联卡与sim卡有什么差别性的不同
- 事件冒泡、事件捕获、事件委托
- Struts2+Spring4+Hibernate4项目整合
- 【货干】Idea 安装 MyBatis 插件
- 黑马程序员2022新版python教程补充(P61)
- 【CE入门教程】使用CE 分析扫雷,查找雷数、笑脸、计时器的内存地址
- The OpenGL® Shading Language, Version 4.60.7 翻译第一章
- 你的饿了么订单又超时啦!
- ali arthas 火焰图_手把手教你看懂Chrome火焰图!(调试性能必备)
- error: The folder you are executing pip from can no longer be found.