string转char*
方式一:data()
#include <iostream>
using namespace std;
void main()
{
string str = "Hello World!!!";
const char* p = str.data(); //加const或者用char* p=(char*)str.data()
cout << "string: " << p << endl;
}
输出结果:string: Hello World!!!
需要添加const,否则会报错invalid conversion from const char* to char *,
在前面加上const或者在等号后面给强制转化成char*的类型。
方式二:c_str()
#include <iostream>
using namespace std;
void main()
{
string str = "Hello World!!!";
const char* p = str.c_str(); //加const或者用char* p=(char*)str.data()
cout << "string: " << p << endl;
}
输出结果:string: Hello World!!!
方式三: copy()
#include <iostream>
using namespace std;
void main()
{
string str = "Hello World!!!";
char p[50] = { 0 };
str.copy(p, str.size(), 0);//这里5代表复制几个字符,0代表复制的位置
cout << "string: " << p << endl;
}
输出结果:string: Hello World!!!
char* 转string
#include <iostream>
using namespace std;
void main()
{
string str;
char* p = "Hello, World!!!!";
str = (string)p;
cout << "string: " << str.c_str() << endl;
//cout << "string: " << str << endl; error
}
输出结果:string: Hello World!!!
string转char[]
#include <iostream>
using namespace std;
void main()
{
string str = "Hello, World!!!!";
char p[_MAX_PATH] = { 0 };
memcpy_s(p, sizeof(p), str.c_str(), str.size());
cout << "string: " << p << endl;
}
输出结果:string: Hello World!!!
char[]转string
#include <iostream>
using namespace std;
void main()
{
string str;
char p[_MAX_PATH] = "Hello, World!!!!";
str = p;
cout << "string: " << str.c_str() << endl;
}
输出结果:string: Hello World!!!