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

首先介绍下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类型的 ”你好中国“。
时间: 2024-10-12 23:08:12

C++ wchar_t介绍以及和string类型的转换的相关文章

Unicode环境下完成CString向string类型的转换

CString是MFC的字符串类,它不是基本类型,而是对字符串的封装,它是自适应的,在UNICODE环境下就是CStringW,在非UNICODE环境下就是CStringA. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Delphi Byte数组与String类型的转换

string string = AnsiString = 长字符串,理论上长度不受限制,但其实受限于最大寻址范围2的32次方=4G字节: 变量Str名字是一个指针,指向位于堆内存的字符序列,字符序列起始于@Str[1],@Str[1]偏移负16个字节的空间存储着字串长度.引用计数等信息.字符序列以NULL结束. string[n] string[n] = ShortString = 短字符串,最多容纳255个字符,实际长度是字符长度+1,是Delphi的简单类型: Str[0]存储着字符的个数,

计算两个日期之间相差几天(Date类型与String类型互相转换)

一:计算两个日期之间相差几天 1 /** 2 * 3 */ 4 package com.hlcui.date; 5 6 import java.text.ParseException; 7 import java.text.SimpleDateFormat; 8 import java.util.Calendar; 9 import java.util.Date; 10 11 import org.junit.Test; 12 13 /** 14 * @author Administrator

[技术分享] 20171211_后端开发_使用@DateTimeFormat注解解决前台string类型与后台date类型的转换,使用@JsonFormat注解解决后台date类型与前台string类型的转换

说明: 有的时候由前台jsp页面填写一个日期,提交到后台spring mvc的时候,我们希望直接转换成一个Date类型,而不是由一个string 类型接收,然后再通过simpleDateFormat来进行转格式,这样太麻烦了,代码会显的很乱,spring为我们提供了类型转化器,写起来也是很麻烦,我们的需求很简单就是由框架帮我们去自动的转换类型而不是手动的转换,在这样的背景下,我们可以使用@DateTimeFormat注解.此外我们还有一个需求就是我们从数据库里面查询到了日期,然后我们想把这个日期

将一个字符串(string类型)转换成一个int类型

int  CommString::str_to_int(const std::string &str) { int ivalue = 0; sscanf(str.c_str(), "%d", &ivalue); return ivalue; }

int与string类型的转换

在SQL语句中 在JS中, (1) var   x=100    a   =   x.toString()   (2) var   x=100;    a   =   x   +"";   (1) var s = "32"  var i = new Number(s)(2) parseInt() 在java中, 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int r

js string类型时间转换成Date类型

方法一: var t = "2015-03-16";var array =  t.split("-");var dt = new Date(array[0], array[1], array[2]);//    var dtt = new Date(t.replace("-g-/", "")); 方法二: var remindTime = "2008-04-02 10:08:44";  var str =

String类型的属性和方法

× 目录 [1]属性 [2]对象通用方法 [3]访问字符方法[4]字符串拼接[5]创建子串方法[6]大小写转换[7]查找子串位置[8]正则匹配方法[9]去除首尾空格[10]字符串比较 前面的话 前面已经介绍过字符串String类型的基本知识,本文将介绍String类型的属性和方法 属性 字符串String类型的每个实例都有一个length属性,表示字符串中的字符个数.由于字符串是不可变的,所以字符串的长度也不可变 字符串的length属性不会在for/in循环中枚举,也不能通过delete操作符

[redis数据结构] 之 string类型

本文介绍redis的string类型的命令使用方式,string类型是二进制安全的,可以存放任何数据类型,图片.对象等等都是可以的.下面将罗列与string类型相关的语法操作: 1.如何添加一个string 命令:set 添加一个string对象 语法:set [key] [value] 范例:set name wangzp  阐述:添加了一个名为name的string对象,值为'wangzp':如果之前已经存在name对象,那么将覆盖原来的对象. 2.如何获取一个string 命令:get 获