示例程序如下:
int z_chi_nohalf(const char *s, int l)
{
int len = 0, i = 0;
if( s == NULL || *s == 0 || l <= 0 )
{
return 0;
}
while(*s)
{
if( (*s & 0x80) == 0 )
{
i++;
s++;
len++;
}
else
{
if( *(s + 1) == 0 )
{
break;
}
<span style="white-space:pre"> </span>//UTF-8编码 汉字占用3字节 如果是GB2312 则汉字占用2字节,此时要加2 下面的 减3 同理
i += 3;
s += 3;
len += 3;
}
if( i == l )
{
break;
}
else if(i > l)
{
len -= 3;
break;
}
}
return len;
}