VC中獲取字串長度的四種型別

2021-07-10 10:50:15 字數 808 閱讀 3599

vc中的字串型別和處理函式是乙個比較複雜的問題,這類函式有四中,以去字串長度的函式為列,如下所示:

strlen    str族

wcslen    wcs族

_mbslen   _mbs族

_tcslen   _tcs族

其中,前兩族的函式是c語言的標準庫函式,後兩族函式是vc中特有的函式,即微軟的擴充套件函式。這四族最大的區別是它們所用的字符集不同,或說它們的型別引數不同。

(1)str族所使用的參考型別是char* ,這一族的函式都是以位元組為單位進行處理,乙個英文本元佔乙個位元組,乙個漢字佔兩個位元組,因此strlen(「中文abc」)的結果是7,字串在記憶體中占有7個記憶體。(不包括\0)

(2)wcs族所使用的參考型別為wchar_t*,wchar_t是一種寬字元(unicode字元),該字元是由兩個位元組組成。unicode字串都要在前面加上乙個l字首,因此,_wcslen(l"中文abc「)的結果是5,但字串在記憶體中佔得位元組實際是10。

(3)_mbc族的引數型別為unsigned char*,_mbs族函式是為了處理漢字字元專門引進的,它以實際的字元為單位,而不是以位元組為單位進行處理,乙個漢字是乙個字元(乙個字母也是乙個字元,因此_mbslen("中文abc")的結果是5,但字串在記憶體中佔7個位元組。

(4)_tcslen稱為自適應函式,它的引數為tchar,tchar是乙個自適應型別,在unicode環境下_tcslen等同於wcslen.在ansi環境下,_tcslen等同於strlen.這以環境而定。

使用VC獲取字串的長度

4.5.8 字串的長度 字串的長度通常是指字串中包含字元的數目,但有的時候人們需要的是字串所佔位元組的數目。常見的獲取字串長度的方法包括如下幾種。1.使用sizeof獲取字串長度 sizeof的含義很明確,它用以獲取字元陣列的位元組數 當然包括結束符0 對於ansi字串和unicode字串,形式如下...

使用VC獲取字串的長度

4.5.8 字串的長度 字串的長度通常是指字串中包含字元的數目,但有的時候人們需要的是字串所佔位元組的數目。常見的獲取字串長度的方法包括如下幾種。1.使用sizeof獲取字串長度 sizeof的含義很明確,它用以獲取字元陣列的位元組數 當然包括結束符0 對於ansi字串和unicode字串,形式如下...

獲取字串的長度

php中有乙個神奇的函式,可以直接獲取字串的長度,這個函式就是strlen 例子如下 str hello len strlen str echo len 輸出結果是5strlen函式對於計算英文字元是非常的擅長,但是如果有中文漢字,要計算長度該怎麼辦?可以使用mb strlen 函式獲取字串中中文長...