std::string 是c++標準庫裏面其中一個,封裝了對字符串的操作
1:把string轉換爲char
* 有3中方法:
1:data
如:
string str = "Hello";
char *p = str.data();
2:.c_str
如:
string str = "Hello";
char *p = str.c_str();
3: copy
如 :
string str = "Hello";
char p[40];
str.copy(p,5,0); //這裏5,代表複製幾個字符,0代表複製的位置
*(p+5)='\0'; //要手動加上結束符
cout < <p;
2:把char* 轉換爲 string的方法
char* p = "Hello";
std::string str = p; // 可以對str直接賦值
題外話:
當我們定義一個string類型的變量後,使用printf_s的問題。
std::string str = "Hello";
printf_s("%s", str);
這樣的輸出是有問題的,因爲%s要求的是後面對象的首地址。但是string不是這樣的類型,所以會出錯。使用
cout << str << endl; 這樣輸出是沒有問題的。
如果真的要使用printf_s(),修改如下:
std::string str = "Hello";
printf_s("%s", str.c_str());