1. 程式人生 > >WinCE下的非常用字串操作函式

WinCE下的非常用字串操作函式

Windows CE是一種Unicode環境,使用wchar_t來描述字元型變數。注意,這並不是說它不支援char型字元,char* p = "你好"同樣是合法的,只不過在顯示的時候必須轉換成wchar_t型別。

來看看WinCE下的字串操作函式:
wcscat
wcschr
wcscmp
wcscpy
wcscspn
wcslen
wcsncat
wcsncmp
wcsncpy
wcsnlen
wcspbrk
wcsrchr
wcsstr
wcstod
wcstoi64
wcstok
wcstol
wcstombs
wcstoui64
wcstoul
_wcsdup
_wcsicmp
_wcslwr
_wcsnicmp
_wcsnset
_wcsrev
_wcsupr

上面羅列的函式中,有些是平時不太用到或者第一感會想到自己寫一個小演算法實現的。不過很多公司在筆試的時候,喜歡讓應聘者來實現以上這些函式:)

以下這些函式一般很少用:

size_t wcscspn( const wchar_t *string, const wchar_t *strCharSet )
該函式的作用是當字串strCharSet包含在string時,求得第一個字元的位置。

wchar_t *wcspbrk( const wchar_t *string, const wchar_t *strCharSet )
該函式的作用是求得strCharSet中的任意一個字元在string的最初匹配位置的指標。

wchar_t *wcstok( wchar_t *strToken, const wchar_t *strDelimit )
該函式的作用是查詢由在第二個串中指定的分界符分隔開的單詞。首次呼叫時,strToken必須指向要分解的字串,隨後呼叫要把strToken設成NULL;wcstok在strToken中查詢包含在

strDelimit中的字元並用NULL('/0')來替換,直到找遍整個字串;返回指向下一個標記串;當沒有標記串時則返回空字元NULL。 

size_t wcstombs( char *mbstr, const wchar_t *wcstr, size_t count )
該函式將寬字串轉化為窄字串。微軟另外提供的字元轉換的函式有MultiByteToWideChar和WideCharToMultiByte。

wchar_t *_wcsdup( const wchar_t *strSource )
該函式複製一個字串。

int _wcsicmp( const wchar_t *string1, const wchar_t *string2 )
該函式比較字串,但不區分大小寫。類似的函式還有_wcsnicmp。

wchar_t *_wcslwr( wchar_t *string )
該函式將字串轉化為小寫。

wchar_t *_wcsrev( wchar_t *string )
該函式逆序一個字串。

wchar_t *_wcsupr( wchar_t *string )
該函式將字串轉化為大寫。

微軟還有一系列_tcs打頭的函式,其實是用了巨集(UNICODE)來區分編譯環境。如下,我們會很明白:
#ifdef  UNICODE
#define _tcscat     wcscat
#else
#define _tcscat     strcat
#endif