1. 程式人生 > 其它 >泡泡的學習小筆記之判斷字串含有多少中文字

泡泡的學習小筆記之判斷字串含有多少中文字

技術標籤:筆記c++

判斷一個字串中,是否含有中文

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時,那麼這兩個位元組合在一起為一箇中文。