目录
前言
C++编程中经常会遇到各种字符、字符串之间的转换问题,这里简单的做个整理,具体内容直接参考实例代码。
1. CString与std::string的相互转化
报错:
const std::string' (aka 'const basic_string<char, char_traits<char>, allocator<char> >') to 'ATL::CStringT<wchar_t, ATL::StrTraitATL<wchar_t, ATL::ChTraitsCRT<wchar_t> > >::PCXSTR' (aka 'const wchar_t *') for 1st argument
解决方法,请参考如下代码:
// CString转成std::string:
CString aa("Hello");
std::string bb((LPCTSTR)a);
// std::string转成CString:
std::string cc("Boom");
CString dd(cc.c_str());
2. string、char *、char[]的相互转换
代码参考:
// string转char*
string aa="world";
const char *p = aa.c_str();
// char*转string
string bb;
char *p = "hello";
bb = p; //直接赋值
// string转char[]
string cc = "abcde";
char p[10];
int index;
for(int i = 0; i < cc.length(); i++) {
p[i] = cc[i];
index = i;
}
p[index] = '\0';
// char[]转string
const char* dd = "xyz";
string p = dd; //直接赋值
const char[] ee = "xyz";
string pp = ee; //直接赋值