在C語言中輸入中文字符串講解
C語言中的字符串是以ASCII碼表的形式存入的,輸入英文字符是以英文字符對應(yīng)的ASCII碼的形式進(jìn)入寄存器中的,例如輸出hello world!:
將c反匯編得到,
可以看到h的ASCII碼是68,e的ASCII碼是65等等存放進(jìn)內(nèi)存的,那中文字呢?中文字并沒有對應(yīng)的ASCII碼,還可以顯示出來嗎?
答案當(dāng)然是肯定的,在計算機(jī)中存儲中文使用的編碼規(guī)則是GB2312或GB2312-80,規(guī)定:一個小于127的字符的意義與原來相同,但兩個大于127的字符連在一起時,就表示一個漢字,這樣我們就可以組合出大約7000多個簡體漢字了。在這些編碼里,連在ASCII里本來就有的數(shù)字、標(biāo)點、字母都通通重新編了兩個字節(jié)長的編碼,這就是常說的“全角”字符,而原來在127號以下的那些就叫“半角”字符。
將代碼反匯編看看,
這就是中文的存儲方法。
但這樣的話也是有弊端的,我們國家GB2312里的符號的意義可能和別的國家的不一樣,即兩國使用相同的數(shù)字代表不同的符號,于是Unicode出現(xiàn)了,我就不說明Unicode的編碼方式了。
到此這篇關(guān)于在C語言中輸入中文字符串講解的文章就介紹到這了,更多相關(guān)C語言輸入中文字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++ OpenCV學(xué)習(xí)之圖像金字塔與圖像融合詳解
圖像金字塔分為兩種:高斯金字塔和拉普拉斯金字塔。圖像金字塔在保持細(xì)節(jié)的條件下進(jìn)行圖像融合等多尺度編輯操作非常有用。本文將利用圖像金字塔實現(xiàn)圖像融合,需要的可以參考一下2022-03-03C語言數(shù)據(jù)結(jié)構(gòu)中數(shù)制轉(zhuǎn)換實例代碼
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)中數(shù)制轉(zhuǎn)換實例代碼的相關(guān)資料,需要的朋友可以參考下2017-03-03