计算含有汉字的字符串长度,汉字作为一个字符处理
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 }