有时一个字符串中同时包含了中文,英文,标点符号,特殊符号如@#$等,如何统计该字符串中包含了多少个字符呢?
可以用一下函数
int CountWord( std::string content )
{
int cutNum = 0;
char* contsms = (char*)content.c_str();
while( *contsms )
{
if( 0 > *contsms )
{
contsms += 3;
}
else
contsms++;
cutNum++;
}
return cutNum;
}
测试用例如下:
中国人ABC 返回6
中国人ABC@ 返回7
中国人ABC, 返回7
可以看到:中文字为多个字节但是记为1个字符,英文字母记为1个字符,标点符号记为1个字符,特殊符号@#等记为1个字符,
返回为字符串中字符个数