windows编程中的字符串与编码(C++)

windows编程中的字符串与编码(C++)

​ 在VS中,有两种字符集可选:MBCS(多字节字符集)和Unicode

1.存储字符(串)的类型

C++内置类型:

​ 对于char类型,每个字符用1字节存储。(8位)

​ 对于wchar_t(等同于WCHAR),每个字符用2字节存储。(16位)

​ char16_t,char32_t同理,并且C++20还引入了char8_t

<tchar.h>

​ 在该头文件里,定义了TCHAR类型。当设置字符集为Unicode时,等同于wchar_t,否则就等同于char

<winnt.h>

​ 在该头文件里,定义了LPSTR,LPTSTR,LPWSTR等类型,LP含义即是长指针(long pointer),T的含义与前述类似,取决于是否设置了字符集为Unicode,W的含义即宽字符。

​ 也就是说,LPSTR等同于char*,设置了Unicode字符集时,LPTSTR等同于wchar_t*,否则等同于char*,而LPWSTR等同于wchar_t*

2.前缀与宏的使用

​ 对字符串使用L前缀,可以指定其中的每个字符用宽字符类型来存储(一个字符占两位,所以让宽字符串指针指向一个字符串str的时候,要为str加上L前缀)

​ 在<tchar.h>中,定义了宏_T和_TEXT,如果使用Unicode字符集,他们的作用等同于L前缀,否则无任何效果。

3.相关的函数

​ 对于宽字符串应使用wcout或者wprintf。需要打印中文时,先使用setlocale设置本地环境

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值