在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何遍歷中文字符串

程序喵大人 ? 來源:程序喵大人 ? 2023-07-03 09:15 ? 次閱讀

今天和大家分享下如何遍歷中文字符串,主要是如何打印中文字符,因為中文字符串每個字符占用不只一個字節的空間,如果我們逐個字節遍歷,會出現奇怪的結果。而UTF-8編碼寫的中文字符是有特定結構的,我們可以按照它的規則去遍歷打印。

下面是詳情:

前提:UTF-8編碼。

先看下面的代碼和運行結果:

751dab2a-1939-11ee-962d-dac502259ad0.png

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

這個本質是因為中文不只占用一個字節的空間,換一種方式遍歷:


753be536-1939-11ee-962d-dac502259ad0.png

因為一個中文字符不一定占用幾個字節,但它們的長度其實可以從字符的頭中讀取出來,這點可以查看UTF-8的Wiki介紹:https://en.wikipedia.org/wiki/UTF-8#Description

756ede64-1939-11ee-962d-dac502259ad0.png

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編碼
    +關注

    關注

    6

    文章

    957

    瀏覽量

    54951
  • 字符
    +關注

    關注

    0

    文章

    234

    瀏覽量

    25262
  • 代碼
    +關注

    關注

    30

    文章

    4827

    瀏覽量

    69054

原文標題:如何遍歷中文字符串?

文章出處:【微信號:程序喵大人,微信公眾號:程序喵大人】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DB Tools insert data.vi寫入中文字符串至Mysql數據庫失敗

    DB Tools insert data.vi在寫入中文字符串至mysql數據庫表中時寫入失誤,誰能幫忙解決一下,謝謝。補充說明:寫入英文字符串不會出錯,更換為ACCESS或SQL Server數據庫后也能正常寫入.
    發表于 08-15 17:15

    關于定義中文字符串的問題

    本人使用的是pic18f25k20,想要定義一些中文字符串,結果定義的時候發現了一些問題,無法理解,請各位大神幫忙。直接上圖吧,定義了兩個中文字符串,第二個后面多了一些方框,不知道是什么意思,編譯的話都通過了。是不是這種定義方式對中文字
    發表于 11-06 11:34

    如何在multiedit中對中文字符進行刪除操作?

    在multiedit中利用MULTIEDIT_AddKey(hMulti, GUI_KEY_BACKSPACE)可以很好的刪除光標上一個8為ascii字符,但是對于16位的中文字符就不好使,大家用的是什么辦法來刪除中文字符的呀?
    發表于 09-25 04:25

    C語言關于中文字符串的使用誤區在哪

    C語言關于中文字符串的使用誤區背景前幾天在寫c語言代碼進行文件讀寫的時候,在處理文件中的中文詩句的過程中發現了c語言txt文本文件的中文讀取到char數組中的一些不同尋常之處,因此做一個總結。c語言
    發表于 07-14 07:54

    C語言中文字符串的使用誤區有哪些?

    c語言漢字的存儲方式和特點是什么?C語言中文字符串的使用誤區有哪些?
    發表于 10-15 06:24

    怎樣去解決STM32口打印printf發送中文字符時亂碼的問題呢

    怎樣去解決STM32口打印printf發送中文字符時亂碼的問題呢?
    發表于 11-30 07:40

    使用printf去打印中文字符的時候出現亂碼是為什么?

    使用printf去打印中文字符的時候出現亂碼是為什么?
    發表于 12-02 07:12

    Arduino發送中文字符為什么需要轉碼?

    前言:技術售后中,技術論壇上,經常有學習、使用Arduino的小伙伴咨詢“怎樣能讓Arduino IDE輸出中文字符串”的問題。歸根結底就是Arduino IDE使用的UTF8編碼,不支持GB編碼
    發表于 12-17 11:23

    如何在終端上使用UART輸出中文字符

    應用程序: 演示如何在終端上使用 UART 輸出中文字符 BSP 版本:M451系列BSP CMSIS V3.01.003 硬件: NuTiny-EVB-M451 LQFP100 V1.3 序列
    發表于 08-23 06:46

    IAR中UTF-8中文字符串不顯示怎么解決?

    界面使用的是ucGUI原本使用GB2312編碼的中字符串可以直接讀取顯示,字庫也用FontCvt做了初始化的時候也添加了GUI_UC_SetEncodeutf8();函數 后面換成UTF-8的中文字符串
    發表于 10-07 07:11

    字符串的表示

    字符串的表示  隨著計算機在文字處理與信息管理中的廣泛應用, 字符串已成為最常用的數據類型之一, 許多計算機中都提供字符串操作功能, 一些計算機還給出讀寫字
    發表于 10-13 17:11 ?3092次閱讀
    <b class='flag-5'>字符串</b>的表示

    C語言教程之回文字符串

    C語言教程之回文字符串,很好的C語言資料,快來學習吧。
    發表于 04-25 15:49 ?0次下載

    PHP多字節字符串處理函數mbstring函數庫的詳細資料說明

    PHP內置的字符串長度函數strlen無法正確處理中文字符串,它得到的只是字符串所占的字節數。對于GB2312的中文編碼,strlen得到的值是漢字個數的2倍,而對于UTF-8編碼的
    發表于 02-20 14:30 ?9次下載
    PHP多字節<b class='flag-5'>字符串</b>處理函數mbstring函數庫的詳細資料說明

    字符串函數重寫練習

    字符串函數重寫練習:字符串比較、字符串拼接、字符串查找、字符串拷貝、內存比較、內存拷貝、內存初始化、內存比較、二維數組定義及基本使用、位運算
    的頭像 發表于 05-05 15:02 ?2036次閱讀

    C語言總結_字符串函數封裝練習

    字符串函數重寫練習:字符串比較、字符串拼接、字符串查找、字符串拷貝、內存比較、內存拷貝、內存初始化、內存比較、二維數組定義及基本使用、位運算
    的頭像 發表于 08-14 09:42 ?1050次閱讀
    主站蜘蛛池模板: 天天做日日爱 | 久久精品国产亚洲5555 | 亚洲酒色1314狠狠做 | 一区二区视频 | 美日韩一区二区 | 第四色成人网 | 毛片毛片 | 美女被羞羞产奶视频网站 | 日韩中文电影 | 久久青草免费91观看 | 色色色色网| 天天干夜夜曰 | 性欧美网站 | 欧美伦理一区 | 欧美日韩亚洲一区 | 日本黄色小说视频 | 男人的天堂午夜 | 欧美午夜在线观看 | 久久午夜国产片 | 久久国产精品网 | 天天干b | 性喷潮久久久久久久久 | 中国一级特黄真人毛片免费看 | 超大乳抖乳露双乳视频 | 香蕉视频久久久 | 五月天激情开心网 | 亚洲综合涩 | 天天综合网色 | 一级做a爰片久久毛片免费看 | 69久久夜色精品国产69 | 美女视频一区二区三区在线 | 最新版天堂资源中文官网 | 久久伊人男人的天堂网站 | www伊人| 日本aaaaa级片 | 天天色狠狠干 | 亚洲综合激情另类专区 | 免费的三级网站 | 天天天天做夜夜夜夜 | 天堂网www| 亚洲国产精品婷婷久久久久 |