在VC中 Windows.h中的 宽字节字符串 wchar_t

对于宽字节字符串,  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*字符串

原文地址:https://www.cnblogs.com/zijidefengge/p/14282235.html