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