有时候有string对象,但需要c-风格字符串,该如何办呢?可以把string类型转换成char*类型,这里一般有以下三种方法:
1.c_str()方法
string name="James";
char *str=(char*)name.c_str();
printf("%s\n",str);
输出James,说明string类型变量已经成功转换成char*。
2.data()方法
string name="James";
char *str=(char*)name.data();
printf("%s\n",str);
输出James,说明string类型变量已经成功转换成char*。
3.copy()方法
string name="James";
char str[10];
name.copy(str,5,0);//5代表复制字符个数,0代表复制的初始位置
str[6]='\0';//一定要自行加上字符串结束符
printf("%s\n",str);
输出James,说明string类型变量已经成功转换成char数组。
char*转换成string类型
char* p = "abc";
string s = p;
这个操作就是可以直接赋值即可
相互转换的例子:
#include <iostream>
using namespace std;
int main()
{
const char* temp = "qadrweqf";
cout<<temp<<endl;
string str= temp;
cout<<temp<<endl;
const char* temp2 = (char*)str.c_str();
cout<<temp2<<endl;
return 0;
}
输出的结果:
qadrweqf
qadrweqf
qadrweqf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)