C语言每日一练(010)

题目

统计文件的字符数

代码

  1. /*******************************************************************************************************

  2. ** 题 目: 统计文件的字符数

  3. ********************************************************************************************************/

  4. #include <stdio.h>

  5. #include <stdlib.h>

  6. int main(void)

  7. {

  8. char fname[80];/*存贮文件名*/

  9. FILE *rfp;

  10. long count;/*文件字符计数器*/

  11. printf("请输入文件名:");

  12. scanf("%s",fname);

  13. if((rfp=fopen(fname,"r"))==NULL)

  14. {

  15. printf("Can't open file %s.\n",fname);

  16. exit(1);

  17. }

  18. count = 0;

  19. while(fgetc(rfp)!=EOF)

  20. {

  21. count++;

  22. }

  23. fclose(rfp);/*关闭文件*/

  24. printf("共有 %ld 个字符在文件 %s 中。\n",count,fname);

  25. return 0;

  26. }

测试结果:

首先,在与该源文件相同文件夹下建一个test.txt的文件,里面输入你要统计的内容:

其实,不同的编码,其字符(中文、英文字符)的占用的字节数是不一样的。下面测试一下:

(1)utf-8编码下的英文字符统计

可见,utf-8编码下,一个英文字符占用一个字节。

(2)utf-8编码下的中文字符统计

可见,utf-8编码下,一个中文字符占用三个字节。

(3)GB2312编码下的英文字符统计

可见,GB2312编码下,一个英文字符占用一个字节。

(4)GB2312编码下的中文字符统计

可见,GB2312编码下,一个中文字符占用两个字节。

总结

中、英文字符占用的字节数与编码有关。其他编码可以通过以上方式来测试,在notepad++中可修改编码,如:

转发、点在看就是对小编最大的支持!

(0)

相关推荐

  • ecshop模板UTF-8和GBK版本有什么区别呢

    UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码. 对于英文字符较多的论坛则用UTF-8节省空间: GBK的文字编码是双字节来表示 ...

  • Go 学习笔记(31)— 字符串 string、字符 rune、字节 byte、UTF

    Go 学习笔记(31)— 字符串 string、字符 rune、字节 byte、UTF

  • 帮你搞清ASCII、Unicode和UTF-8区别,拿走不谢

    首先说一下背景:由于计算机是美国人发明的,因此最早只有127个字母被编码到计算机中,也就是大小写英文字母.数字和一些符号,这个编码表称为ASCII编码. 例如:大写字母A的编码是65,小写字母z的编码 ...

  • 【Python面试】 说说4种常用编码的区别?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • C语言char字符串与中文编码的坑

    原    创先从C语言标准库string.h的strstr函数说起吧,函数原型大概是这样的:const char * strstr ( const char * str1, const char * ...

  • Python字符编码有几类?Python学习教程

    刚开始学习Python,肯定少不了基础知识的了解,比如说字符编码,那么你知道Python常见字符编码有哪些吗?我们一起来看看Python字符编码的常用种类吧. 第一种:ASCII码.是基于拉丁字母的一 ...

  • C语言每日一练(002)

    题目 求数组元素之和 代码 首先,需要构造一个求和函数.这里求和函数有两种构造方法,一种是迭代法,另一个种是递归法. 迭代法求和函数 int sum(int a[], int n) { int i = ...

  • 公基每日一练

    作家路遥在<平凡的世界>中描述到:"田福堂太痛苦了!当年搞合作化时,他曾怀着多么热烈的感情把这些左邻右舍拢合在一起,做梦也想不到二十多年后的今天,大家又散伙了."田福堂 ...

  • 公共基础知识每日一练

    下列属于名医扁鹊的成就的是( ) A.麻沸散 B.五禽戏 C.四诊法 D.人工呼吸 答案:C.解析:AB均为华佗成就,C项为扁鹊成就,D项为张仲景成就.故本题答案为C. 文/福建事业单位招聘

  • 象棋 每日一练 四步杀143

    2道题10分钟优秀,20分钟合格.棋局针对初级象棋爱好者,天天象棋业5以下水平可以练练. 上期答案,答案仅供参考,部分棋局并非唯一解. 1. 马五进七 将5平6 2. 后马退五 将6平5 3. 马五进 ...

  • ​行测每日一练专项练习

    当下的中国,缺少那种让人独处而不寂寞,与另一个自己--自己的灵魂对话的空间.生活总是让人疲倦,我们都需要有短暂的"关机"时间,让自己只与自己相处,阅读.写作.发呆.狂想,把灵魂解放 ...

  • 润德教育2021.5.11临床执业/助理每日一练—生化

    您的姓名:* 类别* 执业 助理 1.直接参与葡萄糖合成糖原的核苷酸是* A.UTP B.TTP C.GTP D.ADP E.CTP 2.磷酸戊糖途径的主要产物之一是* A.NADPH B.FMN C ...

  • (每日一练)2021年税务人员执法资格统一考试训练题

    关于我们 "互帮互助,开拓税官视野","互添互补,共建税务家园"是我们一贯追求的理念.多年来,我们一直努力为基层一线税官提供快捷.权威.实用.互动的税务专业化服 ...

  • 行测每日一练

    张先生希望能按约定时间到达车站.上午8点出家门,以每分钟80米的速度步行去车站,走了一半的路程时,他突然发现忘了东西,立即转身回家去取,并把速度提高到原来的1.5倍.他取了东西后,仍以1.5倍的速度赶 ...

  • 公共基础知识每日一练专项练习

    小何与男友小国到外地旅游,期间二人到玉器首饰店准备购买玉佩作为信物,小何在挑选.试戴玉佩时,不小心将玉佩摔碎,于是玉器店的老板肖某要求二人赔偿.根据相关法律,下列说法正确的是( ). A. 应由小何承 ...