c_str()的用法詳細解析
const char *c_str();
c_str()函數(shù)返回一個指向正規(guī)C字符串的指針, 內(nèi)容與本string串相同.
c_str()就是把string類對象轉(zhuǎn)換成和c兼容的char *類型。
這是為了與c語言兼容,在c語言中沒有string類型,故必須通過string類對象的成員函數(shù)c_str()把string 對象轉(zhuǎn)換成c中的字符串樣式。
注意:一定要使用strcpy()函數(shù) 等來操作方法c_str()返回的指針
比如:最好不要這樣:
char* c;
string s="1234";
c = s.c_str(); //c最后指向的內(nèi)容是垃圾,因為s對象被析構(gòu),其內(nèi)容被處理
應(yīng)該這樣用:
char c[20];
string s="1234";
strcpy(c,s.c_str());
這樣才不會出錯,c_str()返回的是一個臨時指針,不能對其進行操作
再舉個例子
c_str() 以 char* 形式傳回 string 內(nèi)含字符串
如果一個函數(shù)要求char*參數(shù),可以使用c_str()方法:
string s = "Hello World!";
printf("%s", s.c_str()); //輸出 "Hello World!"
相關(guān)文章
Vscode Remote Development遠程開發(fā)調(diào)試的實現(xiàn)思路
這篇文章主要介紹了Vscode Remote Development遠程開發(fā)調(diào)試的相關(guān)資料,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04C語言中g(shù)etchar和putchar的使用方法詳解
我們知道scanf函數(shù)可以從鍵盤輸入信息,而printf則可以輸出信息,同樣地,getchar和putchar也有同樣的功能,下面我來給大家介紹putchar和getchar的使用方法,需要的朋友可以參考下2023-08-08