最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中判斷一個char*是不是utf8編碼

 更新時間:2017年06月19日 10:38:29   投稿:lqh  
這篇文章主要介紹了C語言中判斷一個char*是不是utf8編碼的相關資料,需要的朋友可以參考下

C語言中判斷一個char*是不是utf8編碼

里我修改了一下, 純ASCII編碼的字符串也返回true, 因為UTF8和ASCII兼容

實例代碼:

int utf8_check(const char* str, size_t length) { 
  size_t i; 
  int nBytes; 
  unsigned char chr; 
 
  i = 0; 
  nBytes = 0; 
  while (i < length) { 
    chr = *(str + i); 
 
    if (nBytes == 0) { //計算字節(jié)數(shù) 
      if ((chr & 0x80) != 0) { 
        while ((chr & 0x80) != 0) { 
          chr <<= 1; 
          nBytes++; 
        } 
        if ((nBytes < 2) || (nBytes > 6)) { 
          return 0; //第一個字節(jié)最少為110x xxxx 
        } 
        nBytes--; //減去自身占的一個字節(jié) 
      } 
    } else { //多字節(jié)除了第一個字節(jié)外剩下的字節(jié) 
      if ((chr & 0xC0) != 0x80) { 
        return 0; //剩下的字節(jié)都是10xx xxxx的形式 
      } 
      nBytes--; 
    } 
    i++; 
  } 
  return (nBytes == 0); 
} 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • C語言超詳細講解線性表

    C語言超詳細講解線性表

    線性表,數(shù)據(jù)結構中最簡單的一種存儲結構,專門用于存儲邏輯關系為"一對一"的數(shù)據(jù)。線性表是基于數(shù)據(jù)在實際物理空間中的存儲狀態(tài),又可細分為順序表(順序存儲結構)和鏈表
    2022-07-07
  • OpenCV實現(xiàn)直線檢測并消除

    OpenCV實現(xiàn)直線檢測并消除

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)直線檢測并消除,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語言實現(xiàn)猜數(shù)字小游戲的示例代碼

    C語言實現(xiàn)猜數(shù)字小游戲的示例代碼

    猜數(shù)字小游戲是我們小時候喜歡我們一個經(jīng)典小游戲。本文將用C語言實現(xiàn)這一經(jīng)典游戲,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-08-08
  • C語言實現(xiàn)簡易計算器功能

    C語言實現(xiàn)簡易計算器功能

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡易計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++實現(xiàn):螺旋矩陣的實例代碼

    C++實現(xiàn):螺旋矩陣的實例代碼

    螺旋矩陣是指一個呈螺旋狀的矩陣,它的數(shù)字由第一行開 始到右邊不斷變大,向下變大, 向左變大,向上變大,如此循環(huán)。
    2013-03-03
  • 淺談C語言中strcpy,strcmp,strlen,strcat函數(shù)原型

    淺談C語言中strcpy,strcmp,strlen,strcat函數(shù)原型

    下面小編就為大家?guī)硪黄獪\談C語言中strcpy,strcmp,strlen,strcat函數(shù)原型。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • C語言?超詳細梳理總結動態(tài)內(nèi)存管理

    C語言?超詳細梳理總結動態(tài)內(nèi)存管理

    動態(tài)內(nèi)存是相對靜態(tài)內(nèi)存而言的。所謂動態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存,本文帶你深入探究C語言中動態(tài)內(nèi)存的管理
    2022-03-03
  • 一起來了解c語言的str函數(shù)

    一起來了解c語言的str函數(shù)

    這篇文章主要為大家詳細介紹了c語言的str函數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++ list的實例詳解

    C++ list的實例詳解

    這篇文章主要介紹了 C++ list的實例詳解的相關資料,希望通過本文大家能夠理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • 淺析C++中memset,memcpy,strcpy的區(qū)別

    淺析C++中memset,memcpy,strcpy的區(qū)別

    本篇文章是對C++中memset,memcpy,strcpy的區(qū)別進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07

最新評論

青冈县| 巩留县| 城市| 平凉市| 延庆县| 灵宝市| 彰化县| 饶平县| 呼图壁县| 中超| 佛学| 耿马| 登封市| 黄平县| 政和县| 百色市| 翁源县| 华亭县| 儋州市| 迁西县| 蓝田县| 沅江市| 祁阳县| 册亨县| 孟连| 盐山县| 武宁县| 津南区| 天柱县| 梓潼县| 珠海市| 嘉祥县| 道孚县| 祁连县| 通道| 新巴尔虎右旗| 同心县| 磐安县| 驻马店市| 岑溪市| 晋城|