博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用C语言统计给定文本文件中汉字的个数
阅读量:6227 次
发布时间:2019-06-21

本文共 872 字,大约阅读时间需要 2 分钟。

汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1. 

计算机中,补码第一位是符号位,1 表示为负数,所以 汉字机内码的每个字节表示的十进制数都是负数  
所以这题也就可以简化为输入字符串判断其中字符转化为十进制数是否小于零.
注意:汉字是有两个小于零的字符组成,所以在统计结果的时候就要将count除以2了.

#include <stdio.h>
int main(
void)
{
    
int count;
    
char c;
    
while(
1){
        count = 
0;
        
while ((c = getchar()) != 
'
\n
')
//
逐个判断字符,汉字的是两个字符
        {
            
if (c < 
0)
                count++;
        }
        printf(
"
%d\n
", count / 
2);    
    }
    
return 
0;
}

    getchar()函数:从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符.

    getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键. 

注意:如果输入的是中文字符,由于汉字是两个字节,所以getchar()函数对汉字要处理两次.比如我输入2个汉字,getchar()处理4次,返回4个值,由于是中文返回的肯定是负数.

 

什么是汉字机内码?

答:机内码,就是用二个字节,最高位为1,用它来表示一个汉字,在用到这个字时,系统按这个编号去找它的点阵信息,然后把它显示出来

转载地址:http://fnjna.baihongyu.com/

你可能感兴趣的文章
高仿Instagram 页面效果android特效
查看>>
2016 年总结
查看>>
将String转化成Stream,将Stream转换成String
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>