函數(shù)公式 怎么判斷一個字符串是中文,標(biāo)點(diǎn)符號?
怎么判斷一個字符串是中文,標(biāo)點(diǎn)符號?如果您想以類似ispunct函數(shù)的方式查找UTF-8字符串中的所有標(biāo)點(diǎn)(包括中文和英文標(biāo)點(diǎn)),可以參考以下方法:首先將UTF8字符串轉(zhuǎn)換為T類型的wcharuwst
怎么判斷一個字符串是中文,標(biāo)點(diǎn)符號?
如果您想以類似ispunct函數(shù)的方式查找UTF-8字符串中的所有標(biāo)點(diǎn)(包括中文和英文標(biāo)點(diǎn)),可以參考以下方法:首先將UTF8字符串轉(zhuǎn)換為T類型的wcharuwstring。這可以通過第三方庫、系統(tǒng)API(如windows的multibytetowidechar)來完成,和c11的<codecvt>。然后使用<locale>庫的ispunct模板函數(shù)來識別標(biāo)點(diǎn)符號。此函數(shù)的用法與C版本中的ispunct類似,只是有更多的字符類型模板參數(shù)和本地環(huán)境locale參數(shù)。因此,除了英語字符以外的符號可以根據(jù)語言環(huán)境來確定。在中文系統(tǒng)語言windows中,您可以在不顯式設(shè)置區(qū)域設(shè)置的情況下工作:
但是在Linux環(huán)境中,如果您要識別英文以外的標(biāo)點(diǎn)符號,則可能需要指定區(qū)域設(shè)置:由于不同系統(tǒng)平臺中的區(qū)域設(shè)置配置不同(某些環(huán)境中沒有可用的區(qū)域設(shè)置),如果您對遷移兼容性有很高的要求,建議先切換到utf-16/utf-32,然后再切換到正則表達(dá)式過濾方法。