资源描述:
《常用的宽字符函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、常用的宽字符函数_tcsrchr从末尾开始查找常用的宽字符函数由于WindowsNT/2000/XP采用的是Unicode字符编码,字符都是双字节的。所以在MFC编程中,一般需要使用双字节的字符类型wchar_t和对应的字符串及其指针类型LPCWSTR和LPCTSTR,并在常数字符串前添加了L转换符,串长计算函数不能用strlen而改用wcslen,串格式打印函数也不能用sprintf,而是改用swprintf。wchar_t类型,在标准C++中为内置的数据类型和关键字;在C99标准中则为typedef类型,其等价的数
2、据类型与具体的实现有关,在Win32和VC中定义为:typedefunsignedshortwchar_t;下面是若干常用的宽字符函数(包含在ISOC99/ISOC++的标准库中):#includesize_twcslen(constwchar_t*s);intwprintf(constwchar_t*restrictformat,...);intwscanf(constwchar_t*restrictformat,...);intswprintf(wchar_t*restricts,size_tn,
3、constwchar_t*restrictformat,...);intswscanf(constwchar_t*restricts,constwchar_t*restrictformat,...);longintwcstol(constwchar_t*restrictnptr,wchar_t**restrictendptr,intbase);floatwcstof(constwchar_t*restrictnptr,wchar_t**restrictendptr);doublewcstod(constwchar_t*
4、restrictnptr,wchar_t**restrictendptr);#includeerrno_t_itow_s(intvalue,wchar_t*buffer,size_tsizeInCharacters,intradix);errno_t_ultow_s(unsignedlongvalue,wchar_t*str,size_tsizeOfstr,intradix);多字节-multibyte宽字符-widechar非英语系的大部分语言,存在无法用有限的ascii字符表达的问题。由此产生了
5、使用多字节字符来表示的办法,比如GB编码的汉字。但多字节带来的一个显著不便就是多字节字符在处理的时候不太方便。比如文本编辑的时候,中英文混排,光标移动、汉字删除时会出现半个汉字的问题。为了文本处理的方便,许多系统内部采用了将多字节字符和单字节字符都转换称宽字符的办法,将所有的字符都变成等宽,一切都方便了。这就是说英文字符也可以采用宽字符的表达方式。也是我说上面的说发不够准确的原因。但宽字符也不是完美的。最简单的问题就是使得采用unicode编码的英文文本体积会扩大一倍....:)宽字符处理函数函数与普通函数对照表只要看
6、见“W”就是宽的意思,左边wchar_t,右边char字符分类:宽字符函数普通C函数描述iswalnum()isalnum()测试字符是否为数字或字母iswalpha()isalpha()测试字符是否是字母iswcntrl()iscntrl()测试字符是否是控制符iswdigit()isdigit()测试字符是否为数字iswgraph()isgraph()测试字符是否是可见字符iswlower()islower()测试字符是否是小写字符iswprint()isprint()测试字符是否是可打印字符iswpunct()i
7、spunct()测试字符是否是标点符号iswspace()isspace()测试字符是否是空白符号iswupper()isupper()测试字符是否是大写字符iswxdigit()isxdigit()测试字符是否是十六进制的数字wcslen()strlen()获取字符数组长度大小写转换:宽字符函数普通C函数描述towlower()tolower()把字符转换为小写towupper()toupper()把字符转换为大写字符比较:宽字符函数普通C函数描述wcscoll()strcoll()比较字符串日期和时间转换:宽字符函
8、数描述strftime()根据指定的字符串格式和locale设置格式化日期和时间wcsftime()根据指定的字符串格式和locale设置格式化日期和时间,并返回宽字符串strptime()根据指定格式把字符串转换为时间值,是strftime的反过程打印和扫描字符串:宽字符函数描述fprintf()/fwprintf()使用var