编写gbk_strlen函数,计算含有汉字的字符串的长度,汉字作为一个字符处理,已知:汉字编码为双字节,其中首字节<0,尾字节在0~63以外。
代码
#include <iostream>
using namespace std;
int gbk_strlen(const char*str)
{
const char *p = str;
while(*p)
{
if(*p<0&&(*(p+1)<0||*(p+1)>63))
{
str++;
p+=2;
}
else
{
p++;
}
}
return p-str;
}
int main()
{
char str[] = "abc你好123中国456";
int len = gbk_strlen(str);
cout<<str<<endl;
cout<<"len ="<<len<<endl; //14
return 0;
}