中英文本串中統計英文本元個數

2021-06-14 21:15:05 字數 525 閱讀 1745

工作中遇到如下問題,搜尋網路資源得以解決,記錄以供參考。

問題:在一段中英文混合的字串中,通過關關鍵字查詢到某位置p。需要擷取p前後一定長度字元,構成乙個新的字串。

問題解析:由於是中貢混合的字串,當向前後擷取長度不當時會出現擷取到中文半個字的情況。面引起出現亂碼的情況。

方法:首先確定字串的編碼格式,由於中文字元utf8編碼時占用3位,而gbk時當用2位。

其次由於英文本元ascii的範圍是1到128

思路:1、統計出擷取字串中英文本元的字數,從面得到中文字元占用的位數。

2、判斷中文字元占用的位數能否除(3或2),能則是完整的中文字,否則,則不是完整的,需要減去除(3或2)之後的餘數長度。

int string is_char(string str)

int count=0;

for(int i=0;ichar c=str[i];

if(c>=1&&c<=128)

count++;

return (str.lenght()-count)%3;

string中英文本元

在c 中字串類的string的模板原型是basic string template class elem,class traits char traits elem class ax allocator elem class basic string 第乙個引數 elem表示型別。第二個引數trai...

python中的中英文本元統計

英語字元和中文字元的區別在於 大小寫字元和字元個數 中文中是乙個詞語 統計英語字元 def gettext txt open halmet.txt r read txt txt.lower 文中所有英語小寫 for ch in txt txt.replace ch,return txt halmet...

中英文本串擷取

substringlength 每行限制文字數量 預設是20個字元 按照英文本元長度來計算,乙個中文字元相當於兩個英文本元 replacecharacter 超出字元代替樣式 預設是 擷取字元 string substring string strinput return resultstr rep...