我們知道vc++ mfc的cstring類的getlength()返回的是byte數而不是字元個數,所以我們在字串擷取的時候就會遇到一些問題。
比如說我們有乙個寬度是7個byte的全半形字元混在的字串:
"理a程式"
我們有乙個需求:擷取6個byte,當第6個byte和第7個byte是乙個全形字符(比如漢字)的時候,把這個全形字符忽略掉。
我們可以用下面的方法實現上述功能。
cstring getbytescut(cstring strstring, int nbytesize)
// 多位元組文字的低位位元組的時候
else if( _mbc_trail == nmbc_type )
// 多位元組文字以外的時候
else
// 最後乙個byte是 單位元組字元 或者 多位元組字元的低位位元組 的時候
if( nbytesize == ncnt )
// 最後乙個byte是多位元組字元的高位位元組的時候(即,乙個完整的漢字被分成兩半的時候)
else if (nbytesize < ncnt)
// 不需要擷取的時候
else
}return( strcnvstring );
}
我們可以這樣呼叫:
cstring str = "理a程式";
getbytescut(str,6)
返回結果是:"理a程"
字串擷取
var 用 擷取 刪除左邊字元,保留右邊字元 echo 其中 var 是變數名,號是運算子,表示從左邊開始刪除第乙個 號及左邊的所有字元 結果 root localhost shell shell.sh 表示從左邊開始刪除最後 最右邊 乙個 號及左邊的所有字元 結果 將變數改為var 結果 輸出為空...
字串擷取
1.定義乙個字串a,擷取a 的某乙個專案組,複製給b,b必須是int型 nsstring a 1.2.30 int b a substringwithrange nsmakerange 4,2 intvalue nslog a n a nslog b d b output 2011 07 05 11...
字串擷取
字串擷取,支援中文和其他編碼 access public param string str 需要轉換的字串 param string start 開始位置 param string length 擷取長度 param string charset 編碼格式 param string suffix 截...