日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 程序喵大人

今天和大家分享下如何遍歷中文字符串,主要是如何打印中文字符,因?yàn)橹形淖址總€(gè)字符占用不只一個(gè)字節(jié)的空間,如果我們逐個(gè)字節(jié)遍歷,會出現(xiàn)奇怪的結(jié)果。而UTF-8編碼寫的中文字符是有特定結(jié)構(gòu)的,我們可以按照它的規(guī)則去遍歷打印。


下面是詳情:


前提:UTF-8編碼。


先看下面的代碼和運(yùn)行結(jié)果:


上面代碼定義了一個(gè)9個(gè)中文的字符串,但打印size確是27,挨個(gè)字符遍歷也都是?。


這個(gè)本質(zhì)是因?yàn)橹形牟恢徽加靡粋€(gè)字節(jié)的空間,換一種方式遍歷:



因?yàn)橐粋€(gè)中文字符不一定占用幾個(gè)字節(jié),但它們的長度其實(shí)可以從字符的頭中讀取出來,這點(diǎn)可以查看UTF-8的Wiki介紹:https://en.wikipedia.org/wiki/UTF-8#Description



這里可以看到,通過Byte1的前4位就可以區(qū)分出這個(gè)字符究竟占用幾個(gè)字節(jié),所以就有了上述的遍歷方式。


具體學(xué)習(xí)可以看這兩個(gè)鏈接:


https://en.wikipedia.org/wiki/UTF-8#Description


https://stackoverflow.com/questions/40054732/c-iterate-utf-8-string-with-mixed-length-of-characters


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
關(guān)閉