天天看點

C++中string類型與char*互相轉換

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

c++

繼續閱讀