char 型变量可以存储一个字节的字符,只能用来保存英文字符和标点符号。存储汉字、韩文与日文不可以,因为这个文字占据有两个字节。C++引入 wchar_t 类型(双字节类型,又名宽字符类型)来解决定义宽字符wchar_t wt[]=L"中";定义了一个wchar_t类型的数组变量wt,用来保存中文字...
分类:
其他好文 时间:
2015-05-20 14:43:29
阅读次数:
139
字符和字符串字面值
前缀
含义
类型
u
Unicode 16 字节
char16_t
U
Unicode 32 字节
char32_t
L
宽字符
wchar_t
u8
UTF-8
char
整型字面值
后缀
最小匹配类型
u or U
unsigned
...
分类:
编程语言 时间:
2015-05-19 22:37:18
阅读次数:
144
(1)ANSI转UNICODEwchar_t*AnsiToUnicode(constchar*pAnsi)
{
intnLen=MultiByteToWideChar(CP_ACP,0,pAnsi,strlen(pAnsi),nullptr,0);
wchar_t*pUnicode=newwchar_t[nLen+1];
MultiByteToWideChar(CP_ACP,0,pAnsi,strlen(pAnsi),pUnicode,nLen);
pUnicode[nLen]=‘\0‘;
returnpU..
分类:
其他好文 时间:
2015-05-19 07:19:38
阅读次数:
209
今天老大让我自己写一个String类而且还是用宽字符wchar_t进行初始化,大坑,深坑,非常坑啊。首先,宽字符组成的字符串,len和size并不相等String类要仿照其他语言,做成一个固定大小的“死字符串”memcpy函数调用过程中,是传的void*,所以这时候就要小心,见如下代码:void S...
分类:
其他好文 时间:
2015-05-15 21:07:44
阅读次数:
199
1. 问题描述 编写程序时通常会面对一些不同的编码格式,如Unicode和multibytes。在有关字符串的处理时尤其重要,系统编程时通常会遇到很多这样的问题,例如把wchar*的字符串转换为char*的字符串,有时还需要把char*类型的字符串转换为wchar*类型。下面提供几种解决方案。2. 解决方案2.1 wchar* 转到 char* 方法一,使用_bstr_t转换。
#incl...
分类:
编程语言 时间:
2015-05-15 17:52:15
阅读次数:
144
1 static int fetchWordFromUTF8(const chConstStringA& strText, WCHAR& result) 2 { 3 int nLength = strText.length(); 4 if(nLength > 7) == 0x00)...
分类:
其他好文 时间:
2015-05-14 11:22:15
阅读次数:
104
#include "codechange.h"#include #include #include #include #include wchar_t *ANSITOUnicode(const char* str){ int textlen = 0; wchar_t *result = NULL; ...
分类:
编程语言 时间:
2015-05-10 23:51:51
阅读次数:
339
2.2 字面值常量Exercise2.7(a)'a'是char型字面值,L'a'是wchar_t型字面值,"a"是字符串字面值,L"a"是宽字符串字面值。(b)10是int型字面值,10u是unsigned型字面值,10L是long型字面值,10uL是unsigned long型字面值,012是八进...
分类:
编程语言 时间:
2015-05-09 20:16:42
阅读次数:
132