C/C++中char*与wchar_t*的几种转换方法

原创文章,转载请注明出处https://blog.csdn.net/aaron_lyn1985/article/details/80053910


多字节(char*)和宽字符(wchar_t*)之间的转换有几种方式,下面按照从通用到特殊的顺序逐一介绍。

1.C库函数

1.1 关键函数

(1)setlocale() 
功能:配置地域化信息
头文件:<locale.h>

函数原型:

char *setlocale (int category, const char * locale); 
函数参数: 
category:表示对本地化的某项内容进行设置,可取如下值: 
LC_ALL 包括下面的全部选项都要
LC_COLLATE 配置字符串比较
C_CTYPE 配置字符类别及转换,例如全变大写 strtoupper()
LC_MONETARY 配置金融货币
LC_NUMERIC 配置小数点后的位数
LC_TIME 配置时间日期格式,与 strftime() 合用

locale:表示本地域代号
返回值:如果为NULL,则返回当前的locale名称(一般为C);如果非空,则根据category和locale进行设置,如果成功,则返回新的locale名称(地域名称),如果失败,则返回 NULL。

(2)wcstombs_s() 
功能:将宽字符编码字符串转换成多字节编码字符串 
头文件: < stdlib.h> 

函数原型:

errno_t __cdecl wcstombs_s(size_t * _PtNumOfCharConverted, char * _Dst, size_t _DstSizeInBytes, const wchar_t * _Src, size_t _MaxCountInBytes);

函数参数: 
PtNumOfCharConverted:指向转换后的字符串的长度加上结束符(单位字节)
Dst:指向转换后的字符串首地址
DstSizeInBytes:目的地址最大字节空间

  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值