C 獲取字串中的中文 英文 數字等

2021-08-19 20:32:55 字數 901 閱讀 3061

在 c++ 程式設計中經常處理 unicode 編碼的字串,unicode 通常用兩個位元組表示乙個字元,原有的英文編碼從單位元組變成雙位元組,只需要把高位元組全部填為 0 就可以。每乙個字元在 unicode 編碼表中對應為乙個編號。例如:b 對應 0042

在 unicode 編碼表中:

數字的編碼範圍為:0x0030 - 0x0039, 小寫英文本母的範圍:0x0061 - 0x007a

大寫英文本母範圍:0x0041 - 0x005a,  漢子的編碼範圍: 0x4e00 - 0x9fff

具體編碼對照可以檢視:unicode 編碼對照表

因此我們獲取字串中的中文、英文等的思路就是獲取每乙個字元的編碼,然後判斷編碼範圍是否在相應的編碼範圍內,具體**如下:

std::wstring tempstr = l"";

std::wstring oldstr = "中文123*&……9@english」;

for(int i = 0; i < oldstr.length(); ++i)

// 大寫字母

else if((*pch >= 0x41 && *pch <=0x5a) && *(pch + 1) == 0x00)

// 小寫字母

else if((*pch >= 0x61 && *pch <= 0x7a) && *(pch + 1) == 0x00)

// 希臘文本

else if((*pch >= 0xb1 && *pch <= 0xc9) && *(pch + 1) == 0x03)

// 中文

else if (((*pch >= 0) && (*pch <= 0xff)) && (*(pch + 1) >= 0x4e && *(pch + 1) <= 0x9f))

}

c 獲取字串中的數字

c 獲取字串中的數字 獲取字串中的數字 字串 數字 例子1 public static decimal getnumber string str return result 例子2 獲取字串中的數字 字串 數字 public static int getnumberint string str re...

C 獲取字串中的英文本母

string str20 abc123 string strsplit1,strsplit2 取出字串中所有的英文本母 strsplit1 regex.replace str20,0 9 regexoptions.ignorecase 取出字串中所有的數字 strsplit2 regex.repla...

ORACLE獲取字串中數字部分

select translate 1212中國2323 0123456789 1212中國2323 0123456789 from dual select regexp replace 23456中國3 00 45 0 9 from dual 標籤 regexp replace regexp rep...