獲取字串中漢字部分
阿新 • • 發佈:2018-12-06
從鍵盤輸入“你好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; }