码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2014-11-08 13:43:28      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   使用   sp   on   2014   问题   

首先介绍下wchar_t类型

一、wchar_t类型的由来

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

二、下面是一个范例

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

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



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

标签:style   blog   color   ar   使用   sp   on   2014   问题   

原文地址:http://blog.csdn.net/sxhlovehmm/article/details/40919607

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!