把最近用到的各种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,char*,int,char[]的更多相关文章

  1. unicode下各种类型转换CString、string

    把最近用到的各种unicode下类型转换总结了一下: 1.string转CString string a=”abc”; CString str=CString(a.c_str()); 或str.for ...

  2. MFC中cstring,string和char[]的相互转化

    int 转 CString:CString.Format("%d",int);...............................string 转 CString CSt ...

  3. UniCode 下 CString 转 char* 的方法(转)

    转自:http://blog.csdn.net/neverup_/article/details/5664733 今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写 ...

  4. UniCode 下 CString 转 char* 的方法

    今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写入文件发现 每个字符与字符之间都有一个空格存在,而且有内容丢失.原来CString类对象GetBuffer(),后 ...

  5. C语言中string char int类型转换

    C语言中string -- ::) 转载 ▼ 标签: 操作符 int char c语言 类型转换 分类: C/Cpp ,char型数字转换为int型 "; printf(]-');//输出结 ...

  6. unicode下char*和CString和一些数据之间的转换

    首先mfc下字符串只有两种数据:char(一个字节)和wchar_t(两个字节),很多其他数据类型如TCHAR,WCHAR等都是这个两个基本类型的宏定义,BYTE是uchar 1.对话框打印char* ...

  7. CString和string在unicode与非unicode下的相互转换(转)

    原文转自 http://blog.csdn.net/u014303844/article/details/51397556 CString和string在unicode与非unicode下的相互转换 ...

  8. Cstring转char、string、int等数据类型的方法(转载)

    Cstring转char.string.int等数据类型的方法 (-- ::) 转载 标签: 杂谈 分类: VC CString 转char * CString cstr; char *p = (LP ...

  9. CString string char* char 之间的字符转换(多种方法)

    在写程序的时候,我们经常遇到各种各样的类型转换,比如 char* CString string 之间的互相转换.首先解释下三者的含义. CString 是一种很有用的数据类型.它们很大程度上简化了MF ...

随机推荐

  1. 写一个基于NSURLSession的网络下载库

    前段时间AFNetworking 更新到3.0 ,彻底废弃NSURLConnection的API转由NSURLSession来实现,代码并没有改动很大,AF封装的很好了,读完源码感觉收获很大. 下载不 ...

  2. 跳转到QQ聊天界面和QQ群界面

    // uin=2977046873为QQ号 NSString *urlString = @"mqq://im/chat?chat_type=wpa&uin=2977046873&am ...

  3. IE8’s Substr() Bug

    IE8不支持substr()函数, 第一个参数为负数,比如:var index = id.substr(-1, 1);替代:var index = id.substr(id.length-1, 1);

  4. 分享Git的一些个人配置

    先贴上自己.gitconfig的相关命令,我再具体说一下 diff.external=~/.git-meld.sh http.sslverify=false http.proxy=http://127 ...

  5. phpcms v9自定义表单提交后返回上一页实现方法

    PHPcms v9中提交自定义表单后默认都是回到首页的,是不是感觉很不爽! 接下来,就说下phpcms v9自定义表单提交后返回上一页实现方法. 1.找到这个文件 phpcms\modules\for ...

  6. html中插入flash代码详解(转载)

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://down ...

  7. 浅谈Android序列化

    序列化原因 序列化的原因基本可以归纳为以下三种情况: 永久性保存对象,保存对象的字节序列到本地文件中: 对象在网络中传递: 对象在IPC间传递. --- --- 序列化方法 在Android系统中关于 ...

  8. HDU1276(士兵队列训练模拟与链表)

    HDU1276 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Descripti ...

  9. laravel框架——保存用户登陆信息(session)

    public function inlog(Request $request) { //获取表单提交的数据 $input = $request->all(); //根本获取的数据去数据库中查询 ...

  10. Solr4.8.0源码分析(18)之缓存机制(一)

    Solr4.8.0源码分析(18)之缓存机制(一) 前文在介绍commit的时候具体介绍了getSearcher()的实现,并提到了Solr的预热warn.那么本文开始将详细来学习下Solr的缓存机制 ...