1 /********************************************************************** 2 * 函數名稱: gbk_strlen 3 * 功能描述: 計算含有漢字的字符串長度,漢字作為一個字符處理 4 * 輸入參數: 需要計算的字符串 5 * 輸出參數: 6 * 返 回 值: 字符串長度 7 * 其它說明: 8 * 修改日期 版本號 修改人 修改內容 9 * ----------------------------------------------- 10 * 11 ***********************************************************************/ 12 int gbk_strlen(const char* str) 13 { 14 const char* p = str; //p用於后面遍歷 15 while(*p) //若是結束符0,則結束循環 16 { 17 if(*p < 0 && (*(p+1)<0 || *(p+1) < 63)) //中文漢字情況 18 { 19 str++; //str移動一位,p移動移動2位,因此長度加1 20 p += 2; 21 } 22 else 23 { 24 p++; //str不動,p移動一位,長度加1 25 } 26 } 27 return p-str; //返回地址之差 28 }