unicode下各种类型转换CString、string
把最近用到的各种unicode下类型转换总结了一下:
1、string转CString
string a=”abc”;
CString str=CString(a.c_str());
或str.format("%s", a.c_str())
2、int转CString
Int a;
CString Cstr;
Cstr.Format(_T("%d"),a);
3、char 转 CString
CString.format("%s", char*);
例:
char szPath[];
CString Cstr;
Cstr.Format(_T("%s"),szPath);
4、CString转string
CString C_str=_T("abc");
string str((LPCSTR)CStringA(C_str));
或string str=CStringA(C_str);
或通过char*中转
CString m_str(_T("qwerg"));
char *chr=new char[m_str.GetLength()+1];
WideCharToMultiByte(CP_ACP,0,m_str.GetBuffer(),-1,chr,m_str.GetLength()+1,NULL,NULL);
string str=chr;
或者CString C_str = _T("ooqoqoq");
// setlocale(LC_ALL, "chs");
char *p = new char[C_str.GetLength()+1];
wcstombs(p,C_str,C_str.GetLength()+1);
string str = p;
用下面代码检测:
MessageBox((CString)str.c_str());
5、CString转const char*
CString a=_T(“ ”);
CStringA b(a);
const char *c=new char(50);
c=b.GetString();
或者:
CString FilePath=_T(“ ”);
int len=WideCharToMultiByte( CP_ACP,0,FilePath.AllocSysString(),FilePath.GetLength(),NULL,0,NULL,NULL);
char * pAscii =new char[len];
len=WideCharToMultiByte(CP_ACP,0,FilePath.AllocSysString(),FilePath.GetLength(),pAscii,len+1,NULL,NULL);
pAscii[len]=0;
const char* path=(const char*)pAscii;
6、CString转char*
CString strPath = _T("啊啊啊");
int nLength = strPath.GetLength();
int nBytes = WideCharToMultiByte(CP_ACP,0,strPath,nLength,NULL,0,NULL,NULL);
char* VoicePath = new char[ nBytes + 1];
memset(VoicePath,0,nLength + 1);
WideCharToMultiByte(CP_OEMCP, 0, strPath, nLength, VoicePath, nBytes, NULL, NULL);
VoicePath[nBytes] = 0;
7、CString转int
CString str=_T("123");
int b=_ttoi(str);
或者转成string,再转int
8、char 转 string
string s(char *);
9、char[]转LPWSTR
直接强制转换
10、string转char*
把string转换为char* 有3中方法:
1.data
如:
string str="abc";
char *p=str.data();
2.c_str
如:string str="gdfd";
char *p=str.c_str();
3. copy
比如
string str="hello";
char p[40];
str.copy(p,5,0); //这里5,代表复制几个字符,0代表复制的位置
*(p+5)='\0'; //要手动加上结束符
cout <</span> <</span>p;
11、string转int
string num;
int a=atoi(num.c_str());
12 、int转string
#include
stringstream ss;
int n = 123;
string str;
ss<<n;
ss>>str;
unicode下各种类型转换CString、string的更多相关文章
- unicode下各种类型转换,CString,string,char*,int,char[]
把最近用到的各种unicode下类型转换总结了一下,今后遇到其他的再补充: 1.string转CString string a=”abc”; CString str=CString(a.c_str() ...
- unicode下char*和CString和一些数据之间的转换
首先mfc下字符串只有两种数据:char(一个字节)和wchar_t(两个字节),很多其他数据类型如TCHAR,WCHAR等都是这个两个基本类型的宏定义,BYTE是uchar 1.对话框打印char* ...
- UniCode 下 CString 转 char* 的方法(转)
转自:http://blog.csdn.net/neverup_/article/details/5664733 今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写 ...
- UniCode 下 CString 转 char* 的方法
今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写入文件发现 每个字符与字符之间都有一个空格存在,而且有内容丢失.原来CString类对象GetBuffer(),后 ...
- CString和string在unicode与非unicode下的相互转换(转)
原文转自 http://blog.csdn.net/u014303844/article/details/51397556 CString和string在unicode与非unicode下的相互转换 ...
- CString string char* char 之间的字符转换(多种方法)
在写程序的时候,我们经常遇到各种各样的类型转换,比如 char* CString string 之间的互相转换.首先解释下三者的含义. CString 是一种很有用的数据类型.它们很大程度上简化了MF ...
- CString,string,char*之间的转换(转)
这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差.string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的:char*是从学习C语 ...
- 转:char*, char[] ,CString, string的转换
转:char*, char[] ,CString, string的转换 (一) 概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准 ...
- 【转】CString,string,char*综合比较
(一) 概述 1.string和CString均是字符串模a板类: 2.string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中: 3.CString(typedef CString ...
随机推荐
- android 6.0特性翻译 --渣渣
所有关于Android 6.0 棉花糖的知识 上下文帮助 1.现在按压:不需要离开你正在运行的app或者访问的网站就可 获取帮助,仅仅触摸和按下Home按钮.(长按Home键,可以在 android ...
- C#微信公众号开发 -- (一)开发之前的准备
本系列文章讲述的是利用C#语言开发微信公众号的实例教程,主要是服务号的开发(因为订阅号不能获取微信开发的高级接口) 想要开发微信服务公众号,首先必须要有一个认证的微信服务号,这样才能够使用微信提供的所 ...
- MVC小系列(四)【向RouteData里扔数据】
向RouteData里扔数据 当Url做路由之后,QueryString里当然是不可能再存你的信息了,而信息包括控制器,action,参数都会存储在RouteData里,而一般这里的信息都是通过前一个 ...
- php模板引擎
http://baike.baidu.com/link?url=HmXfdJBv3zpCdnZPeaSmZmqDBHlyTBnz9Rmb5it-jf1_NLHfaku6_i8ssUYbnaTQEBD4 ...
- spring boot 配置文件提示自定义配置属性
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- (二)Hibernate4 CRUD 体验
所有的学习我们必须先搭建好hibernate的环境(1.导入对应的jar包,2.hibernate.cfg.xml,3.XXXX.hbm.xml) 第一节:HibernateUtil 封装 导入对应的 ...
- C++中delete和delete[]的使用
偶然的机会要使用到动态分配整形数组,怎么删除new出来的东西一时有点模糊(也许一直就不知道),于是在VS上试了试(写代码时经常用这种方法去验证模凌两可的东西),总结出来有两点. 1.基本数据类型new ...
- HTTP_USER_AGENT
<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>We ...
- 查找PHP的配置文件
查找PHP的配置文件 先写了一个 <?php phpinfo();?>然后在浏览器中浏览一下(之前我百度说在Configuration File 这个位置看) 结果竟然显示 Loaded ...
- 高效线程池之无锁化实现(Linux C)
from:http://blog.csdn.net/xhjcehust/article/details/45844901 笔者之前练手写过一个小的线程池版本(已上传至https://github.co ...