有時候有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