ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++ wchar_t介绍以及和string类型的转换

2022-02-21 15:31:25  阅读:231  来源: 互联网

标签:wc string C++ str 类型 wchar 字节


首先介绍下wchar_t类型


一、wchar_t类型的由来

我们知道char类型变量可以存储一个字节的字符,它用来保存英文字符和标点符号是可以的,但是对于汉字、韩文以及日文这样的字符却不可以,因为汉字、韩文以及日文每一个文字都占据两个字节,为了解决这个问题,c++提出了wchar_t类型,称之为双字节类型,又称宽字符类型。

二、下面是一个范例

 1 int main(int argc, wchar_t* argv[])
 2 {
 3     //使用setlocale函数将本机的语言设置为中文简体
 4     setlocale(LC_ALL,"chs");//LC_ALL表示设置所有的选项(包括金融货币、小数点,时间日期格式、语言字符串的使用习惯等),chs表示中文简体
 5     wchar_t wt[] = L"中国你好!";//大写字母L告诉编译器为"中"字分配两个字节的空间
 6     wcout<<wt<<endl;//使用wcout来代替cout输出宽字符,wcin类代替cin输入宽字符
 7     cout<<wcslen(wt)<<endl;//wcslen输出宽字符串的长度,输出长度是5
 8     cout<<sizeof(wt)<<endl;//输出长度是12个字节,最后的wchar_t类型的'\0'两个字节
 9     return 0;
10 }

三、 和string类型之间的转换

1 string str("你好中国");
2 wchar_t * wc = new wchar_t[str.size()];
3 swprintf(wc,100,L"%S",str.c_str()); //注意大写
4 //wc指向的内存区域存储这wchar_t类型的 ”你好中国“。

 

标签:wc,string,C++,str,类型,wchar,字节
来源: https://www.cnblogs.com/ybqjymy/p/15919094.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有