在C语言中输入中文字符串讲解

时间:2021-07-16 09:05:33

C语言中的字符串是以ASCII码表的形式存入的,输入英文字符是以英文字符对应的ASCII码的形式进入寄存器中的,例如输出hello world!:

将c反汇编得到,

在C语言中输入中文字符串讲解

在C语言中输入中文字符串讲解

可以看到h的ASCII码是68,e的ASCII码是65等等存放进内存的,那中文字呢?中文字并没有对应的ASCII码,还可以显示出来吗?

在C语言中输入中文字符串讲解

答案当然是肯定的,在计算机中存储中文使用的编码规则是GB2312或GB2312-80,规定:一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,这样我们就可以组合出大约7000多个简体汉字了。在这些编码里,连在ASCII里本来就有的数字、标点、字母都通通重新编了两个字节长的编码,这就是常说的“全角”字符,而原来在127号以下的那些就叫“半角”字符。
将代码反汇编看看,

在C语言中输入中文字符串讲解

这就是中文的存储方法。
但这样的话也是有弊端的,我们国家GB2312里的符号的意义可能和别的国家的不一样,即两国使用相同的数字代表不同的符号,于是Unicode出现了,我就不说明Unicode的编码方式了。

到此这篇关于在C语言中输入中文字符串讲解的文章就介绍到这了,更多相关C语言输入中文字符串内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_44127339/article/details/104498559