1. 程式人生 > >獲取字串中漢字部分

獲取字串中漢字部分

從鍵盤輸入“你好abc”。輸出結果為“你好”

#include <iostream>
using namespace std;

int main()
{
    char str[20]; //分配20位元組空間,字元陣列,儲存輸入的字串
    cin >> str;

    char cstr[20]; //儲存從str中篩選出的中文字元
    int n=0, cn=0; //n是str的下標,cn是cstr的下標
    while (str[n]!='\0') //空字元‘\0’是字串的結束標記
    {
        if ((str[n] & 0x80) != 0) {//
位與運算。16進位制0x80對應二進位制1000 0000,windows中文作業系統的GBK對ascii碼擴充是第8位為1,判斷第8位是否為1來判斷中文 cstr[cn] = str[n]; cstr[cn + 1] = str[n + 1];//下標+1,轉到下一位元組 cn += 2; n += 2;//每個中文字元佔2個位元組,下標+2,轉到下一個字元 } else //如果是英文字元 { n++;//下標+1,轉到下一個字元 } } cstr[cn] = '\0'; //新增字串結束符
cout << cstr << endl; return 0; }