在C語(yǔ)言中輸入中文字符串講解
C語(yǔ)言中的字符串是以ASCII碼表的形式存入的,輸入英文字符是以英文字符對(duì)應(yīng)的ASCII碼的形式進(jìn)入寄存器中的,例如輸出hello world!:
將c反匯編得到,


可以看到h的ASCII碼是68,e的ASCII碼是65等等存放進(jìn)內(nèi)存的,那中文字呢?中文字并沒(méi)有對(duì)應(yīng)的ASCII碼,還可以顯示出來(lái)嗎?

答案當(dāng)然是肯定的,在計(jì)算機(jī)中存儲(chǔ)中文使用的編碼規(guī)則是GB2312或GB2312-80,規(guī)定:一個(gè)小于127的字符的意義與原來(lái)相同,但兩個(gè)大于127的字符連在一起時(shí),就表示一個(gè)漢字,這樣我們就可以組合出大約7000多個(gè)簡(jiǎn)體漢字了。在這些編碼里,連在ASCII里本來(lái)就有的數(shù)字、標(biāo)點(diǎn)、字母都通通重新編了兩個(gè)字節(jié)長(zhǎng)的編碼,這就是常說(shuō)的“全角”字符,而原來(lái)在127號(hào)以下的那些就叫“半角”字符。
將代碼反匯編看看,

這就是中文的存儲(chǔ)方法。
但這樣的話(huà)也是有弊端的,我們國(guó)家GB2312里的符號(hào)的意義可能和別的國(guó)家的不一樣,即兩國(guó)使用相同的數(shù)字代表不同的符號(hào),于是Unicode出現(xiàn)了,我就不說(shuō)明Unicode的編碼方式了。
到此這篇關(guān)于在C語(yǔ)言中輸入中文字符串講解的文章就介紹到這了,更多相關(guān)C語(yǔ)言輸入中文字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言指針之必須要掌握的指針基礎(chǔ)知識(shí)
這篇文章主要介紹了C語(yǔ)言指針必須要掌握的基礎(chǔ)知識(shí),文中實(shí)例講解的很清晰,有不太懂的同學(xué)可以研究下,希望能夠給你帶來(lái)幫助2021-09-09
C語(yǔ)言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)堆
這篇文章主要為大家介紹了C語(yǔ)言植物大戰(zhàn)數(shù)據(jù)結(jié)構(gòu)二叉樹(shù)堆的圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)易學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
C++實(shí)現(xiàn)LeetCode(190.顛倒二進(jìn)制位)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(190.顛倒二進(jìn)制位),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
C語(yǔ)言實(shí)現(xiàn)兩個(gè)變量值交換的三種方式
兩個(gè)變量值的交換是編程中最常見(jiàn)的問(wèn)題之一,以下將介紹三種變量的交換方式,其中第一種方式是最常用也是最實(shí)用的,后兩種方式一般只在特殊限制下使用,需要的朋友可以參考下2025-03-03
Linux中使用C語(yǔ)言實(shí)現(xiàn)基于UDP協(xié)議的Socket通信示例
這篇文章主要介紹了Linux中使用C語(yǔ)言實(shí)現(xiàn)基于UDP協(xié)議的socket通信示例,服務(wù)器端與客戶(hù)端的功能都非?;A(chǔ),需要的朋友可以參考下2016-03-03
c++網(wǎng)絡(luò)編程下Linux的epoll技術(shù)和Windows下的IOCP模型
c++ 網(wǎng)絡(luò)編程LINUX-epoll/windows-IOCP下socket opoll函數(shù)用法 優(yōu)于select方法的epoll 以及windows下IOCP 解決多進(jìn)程服務(wù)端創(chuàng)建進(jìn)程資源浪費(fèi)問(wèn)題,感興趣的小伙伴一起來(lái)學(xué)習(xí)吧2021-08-08

