string、char *、char[]的转换

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!!!

  

猜你喜欢

转载自blog.csdn.net/qq_30460949/article/details/89307706