最近要用到宽字符,于是乎学习了两天关于宽字符方面的东西
宽字符是双字节多语言字符代码,最简单来说中文一般就可以用宽字符来表示,因为一个中文占用两个字节,如果直接输出会导致乱码。
我用的是codeblocks,可能会需要更改一下编码形式(如果依照本文代码发现会报错的话极有可能是编码问题)
方法是:打开codeblocks-settings-compiler,在窗口下选择other options在下面的窗口输入
-finput-charset=GBK
-fexec-charset=GBK
即可。
首先包含头文件#i nclude <wchar.h>
定义一个宽字符:wchar_t 变量名='定义的值';
例 wchar_t c='A';
定义一个指向宽字符的指针wchar_t *指针名=L"内容";
例 wchar_t *p=L“hello";
定义一个宽字符字符数组 wchar_t 数组名[]=L"内容";
例 wchar_t p[]=L"hello";
相对应于字符串的strlen,strcmp,strcpy,同样对于宽字符有自己的一套函数,详细比对可参照http://blog.chinaunix.net/uid-20454812-id-1675838.html
举几个常见的:
如果定义了 wchar_t *p=L"hello";
wcslen(p)的返回值就是5
mbstowcs()非常好用,比如我输入的一段话是用普通字符串保存的,可以将其转成宽字符串处理&#