C++中常见的字符串类型转换

目录

前言

1. CString与std::string的相互转化

2. string、char *、char[]的相互转换



前言

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; //直接赋值   

猜你喜欢

转载自blog.csdn.net/liuzehn/article/details/107456699