代码块
string name="123"
int length=0;
char c = 0;
int i = 0, nlen = strlen(name.c_str());
for (; i < nlen; i++) {
c = name[i];
if (c & 1 << 7)
{ /* 第8位(从右到左)为1*/
if (c & (1 << 6))
{ /*第7位为1*/
if (c & (1 << 5))
{ /*第6位为1*/
if (c & (1 << 4))
{ /*第5位为1 11110xxx*/
i += 4;/*4字节的字符总数加1,各种长度总数加1,指针向后移动4位*/
length++;
continue; /*开始下次循环*/
}
i += 3; /* 1110xxxx,全角 中文字符*/
length++;
continue;
}
i += 2; /*110xxxxx*/
length++;
continue;
}
}
i += 1; /*0xxxxxxx,半角 英文字符*/
length++;
}