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的編譯器,還可以透過編譯開關來指定它是有符號數還是無符號數。
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的編譯器,還可以透過編譯開關來指定它是有符號數還是無符號數。