1、如果要將string轉換為char*,可以使用string提供的函數c_str() ,或是函數data(),data除了返回字符串內容外,不附加結束符'\0',而c_str()返回壹個以‘\0’結尾的字符數組。
2、const char *c_str();
c_str()函數返回壹個指向正規C字符串的指針,內容與本string串相同.
這是為了與c語言兼容,在c語言中沒有string類型,故必須通過string類對象的成員函數c_str()把string 對象轉換成c中的字符串樣式.
註意:壹定要使用strcpy()函數 等來操作方法c_str()返回的指針
比如:最好不要這樣:
char* c;
string s="1234";
c = s.c_str(); //c最後指向的內容是垃圾,因為s對象被析構,其內容被處理
應該這樣用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
這樣才不會出錯,c_str()返回的是壹個臨時指針,不能對其進行操作
再舉個例子:
c_str() 以 char* 形式傳回 string 內含字符串
如果壹個函數要求char*參數,可以使用c_str()方法:
string s = "Hello World!";
printf("%s",s.c_str()); //輸出 "Hello World!"
1.C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
2.C++不僅擁有計算機高效運行的實用性特征,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
3.string 是C++中的字符串。?字符串對象是壹種特殊類型的容器,專門設計來操作的字符序列。
4.不像傳統的c-strings,只是在數組中的壹個字符序列,我們稱之為字符數組,而C + +字符串對象屬於壹個類,這個類有很多內置的特點,在操作方式,更直觀,另外還有很多有用的成員函數。 string 的定義為:typedef basic_string<char> string;
5.char是C/C++整型數據中比較古怪的壹個,其它的如int/long/short等不指定signed/unsigned時都默認是signed,但char在標準中是unsigned,編譯器可以實現為帶符號的,也可以實現為不帶符號的,有些編譯器如pSOS的編譯器,還可以通過編譯開關來指定它是有符號數還是無符號數。