1. 程式人生 > >iOS中英文混排,獲取字串長度(中文字元數)

iOS中英文混排,獲取字串長度(中文字元數)

將一個NSString型別字串獲取的長度轉換成類似ASCII編碼的長度,如漢字2個位元組,英文以及符號1個位元組這個功能。
用一個char*型別的字串,然後自己遍歷一遍,將它整理為類似ASCII編碼的格式,用到 [NSString cStringUsingEncoding:NSUnicodeStringEncoding]函式獲得一個const char*指標,然後對這個字串進行遍歷,遇/0就跳過,否則length+1,就可以解決此問題。

-  (int)convertToInt:(NSString*)strtemp {

         int strlength = 0;
        char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];
        for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
             if (*p) {
                     p++;
                     strlength++;
             }
            else {
                p++;
           }
      }
      return (strength+1)/2;

}