首页  >   经验  >   C++语言零基础入门教程:4.8 字符类型的编程应用分析

C++语言零基础入门教程:4.8 字符类型的编程应用分析

查看 codexia 的博客 2016-08-11 23:50:58 1536 会员文章,禁止转载
C++   入门  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介本节全面讲解了字符类型的编程应用分析,分析了Unicode和多字节字符集与char、wcahr_t的关系,还介绍了TCHAR。Unicode和多字节字符集在内存中是如何存储的,编译器如何识别不同的字符集,都有所介绍。
    在4.6和4.7节中,我们讲述了字符类型的来龙去脉以及基本数据类型的动态模型,来加深了对数据类型的理解。那么本节我们将进一步来解释字符类型在编程中的应用分析。
    如果只工作在英文字符界面,所有的提示和显示内容都是英文单词和英文的标点符号,我们只需要单字节表示的字符,即窄字符。而如果我们要显示汉字这样的字符,以及汉子标点符号,那么单字节无法表示我们国家的字符了。所以要使用两个字节。
    单字节字符我们用关键字char表示字符类型,双字节的字符用wchar_t表示一个字符。双字节字符一个字符占两个字节哦。这也是我们平常说一个汉字等于两个英文字符的大小的原因。那么,英文字符可不可以用两个字节来表示呢?当然可以。但是英文字符数量有限,一个字节已经够了,那么多出来的一个字节,全是0。不要以为这样的做法没有意义哦,在Unicode字符集编码中,最小编码的就是美国英文字符,也就是我们常常听说的ASCII字符编码表。因为所有这些字符一个字节就表示完了,所以另外一个字节就没东西可放了,就留空了。
    为什么空着还要保留这个字节呢?因为在标准的Unicode编码规则中,统一用两个字节存储一个字符,所以即使用不了,你空着就行了。这样在存储形式上简单统一,在字符处理的时候,就方便。而且,在判断中文和英文字符时,我们就可以利用第一个字节是否为0,就可以辨别中文和英文字符了。
    那么你想到的用不着两个字节的ASCII字符就用一个字节,用得着的汉子就用两个字节,这样岂不是更加节省内存。是的!你真聪明,这就是多字节字符集。
    默认情况下,我们在C++控制台代码中,使用字符串的时候,直接中文英文混用了。默认的,编译器就会按照多字节字符集来存储和读取这些字符串了。

    下面简单看看Unicode和多字节字符集如何存储字符的,如下图所示:

1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd eZZd4 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

分享到:
分享文章[C++语言零基础入门教程:4.8 字符类型的编程应用分析]到QQ空间