欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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é)數 
      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語言的Cairo圖形庫繪制太極圖實例教程

    利用C語言的Cairo圖形庫繪制太極圖實例教程

    這幾天都在研究Cairo圖形庫,這是一個開源跨平臺的圖形庫,相對于OpenGL來說更容易上手使用。這篇文章是利用C語言的Cairo圖形庫繪制了一個太極圖,對大家學習Cairo圖形庫具有一定的參考借鑒價值,下面來一起看看吧。
    2016-12-12
  • C++ 設置透明背景圖片

    C++ 設置透明背景圖片

    這篇文章主要介紹了C++ 設置透明背景圖片的相關資料,需要的朋友可以參考下
    2015-06-06
  • C++結構體數組實現(xiàn)貪吃蛇

    C++結構體數組實現(xiàn)貪吃蛇

    這篇文章主要為大家詳細介紹了C++結構體數組實現(xiàn)貪吃蛇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C語言實現(xiàn)數獨輔助器(附源碼)

    C語言實現(xiàn)數獨輔助器(附源碼)

    數獨是源自瑞士的一種數學游戲。是一種運用紙、筆進行演算的邏輯游戲。本文將利用C語言制作一個數獨輔助器,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-01-01
  • C語言實現(xiàn)簡單的定時器

    C語言實現(xiàn)簡單的定時器

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單的定時器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • C++使用模板實現(xiàn)單鏈表(類外實現(xiàn))

    C++使用模板實現(xiàn)單鏈表(類外實現(xiàn))

    這篇文章主要為大家詳細介紹了C++使用模板實現(xiàn)單鏈表的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 從頭學習C語言之指針和數組

    從頭學習C語言之指針和數組

    這篇文章主要為大家詳細介紹了C語言之指針和數組,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C語言深入分析浮點型數據存儲

    C語言深入分析浮點型數據存儲

    使用編程語言進行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內存位置。這意味著,當您創(chuàng)建一個變量時,就會在內存中保留一些空間。您可能需要存儲各種數據類型的信息,操作系統(tǒng)會根據變量的數據類型,來分配內存和決定在保留內存中存儲什么
    2022-08-08
  • C++數據結構之實現(xiàn)鄰接表與鄰接矩陣的相互轉換

    C++數據結構之實現(xiàn)鄰接表與鄰接矩陣的相互轉換

    這篇文章主要為大家學習介紹了C++如何實現(xiàn)鄰接表與鄰接矩陣的相互轉換,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-07-07
  • C語言 數據結構之數組模擬實現(xiàn)順序表流程詳解

    C語言 數據結構之數組模擬實現(xiàn)順序表流程詳解

    順序表,全名順序存儲結構,是線性表的一種,線性表用于存儲邏輯關系為“一對一”的數據,順序表自然也不例外,不僅如此,順序表對數據的物理存儲結構也有要求,跟隨下文來具體了解吧
    2021-11-11

最新評論