泡泡的學習小筆記之判斷字串含有多少中文字
阿新 • • 發佈:2020-12-24
判斷一個字串中,是否含有中文
int main()
{
//待測字串
string str="iam泡泡噠喲,remember我";
int i=0;//下標
int conut=0;//中文數量計數
while(str[i] != '\0')
{
if(str[i]&0x80)
{
if(str[++i] & 0x80)
conut++;
}
i++;
}
cout << conut <<endl;
return 0;
}
原理:
1、英文的 ASCII 碼,其最高位為 0,佔一個位元組
注:英文的ASCII碼範圍是在0到127,二進位制為(0000 0000 ~ 0111 1111)
2、中文的 ASCII 碼,其最高位為 1。佔兩個位元組,
注:兩個位元組的最高位都是1
由此拿每個位元組的ASCII碼跟最高位0x80(1000 0000)比較當有2個連續的位元組大於0x80時,那麼這兩個位元組合在一起為一箇中文。