string to char* and char* to string 玩轉 String 和 Char*


 

char 類型是c語言中常見的一個數據類型,string是c++中的一個,它的定義為 Strings are objects that represent sequences of characters. 由此可見string是一個char序列的對象,有時候我們經常需要混用這兩個數據類型,所以有些常見的錯誤還是需要避免的:

 

比如,string的append函數只能加const char類型的,而push_back函數可以加char類型的,也可以直接用 += 來添加char類型的,如果要同時添加兩個char, 比如 char a, char b, 則不能寫為 str += a + b, 只能老老實實寫成 str = str + a + b;

 

下面我們來看它們之間的相互轉換:

 

 - char* to string

char *cStr = "C++";
std::string Str = std::string(cStr);

 

- string to char* 

std::string str = "string";
const char *cstr = str.c_str();

 

由於cstr是const的,不能被修改,如果想要修改的話,可以另拷貝一份再修改:

std::string str = "string";
char *cstr = new char[str.length() + 1];
strcpy(cstr, str.c_str());
// do something here!
delete [] cstr;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM