对于宽字节字符串, wchar_t 实质是 unsiged short , 也就是一个字符串在内存中占两个字节,而char 在内存中,一个字符只占一个字节,好像是为了解决汉字的编码问题,使用的是unicode.
对于宽字符数组的初始化
wchar_t name[10] = {L"sdfasdfasfd"} 也可以是 wchar_t name[10] = L"sdfasdfasfd"
数组的初始化可以这样写,但是如果初始化完之后,就要一个位置一个位置的赋值,比如 name[1] = ...
对于宽字符的打印
wprintf(L"%s",name) ;
对于宽字符的输入
wscanf_s(L"%s",name, 40); 这里name 本身就是指针,可以省略&
在Windows下,wchar_t占2个字节(byte);在Linux下,wchar_t占4个字节
wchar_t类型主要用在国际化程序的实现中,但它不等同于Unicode编码。Unicode编码的字符一般以wchar_t类型存储。
char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。
标准C++中的wprintf()函数以及iostream类库中的类和对象能提供wchar_t宽字符类型的相关操作。
函数介绍:
wcslen() 类似与char*类型作参数的strlen()函数 用来获取wchar_t*变量的长度(不包含终结符)
wcscpy() 类似与char*类型作参数的strcpy()函数 用来进行wchar_t*变量之间的复制
同样的还有 wcsncpy()
wcscmp() 类似与char*类型的strcmp()函数 用来对比两个wchar_t*变量的大小
wmemset() 类似与char*类型的memset()函数 用来初始化内存
wprintf() 类似与char*类型的printf()函数 用来输出wchar_t*字符串