首先明確一下: char是C語言標準庫的數據類型; string是C++為了方便用戶定義的一個字符串類,這個類重載了操作符”+”“-“等等,還有很多成員函數方便用戶使用,所以在C++中編程使用string給我們帶來了很大的方便。 C語言中只有char類型的字符標準庫,為了讓C++的string 和C的char兼容,定義了string類的成員函數c_str(),該函數返回一個char類型的指針,而且在string類的字符后面添加結束標識符”/0”。 注意:一定要使用strcpy()函數 等來操作方法c_str()返回的指針 比如:最好不要這樣: [cpp] view plain copy 在CODE上查看代碼片派生到我的代碼片 char* c; string s=”1234”; c = s.c_str(); //c最后指向的內容是垃圾,因為s對象被析構,其內容被處理 應該這樣用: [cpp] view plain copy 在CODE上查看代碼片派生到我的代碼片 char c[20]; string s=”1234”; strcpy(c,s.c_str()); 這樣才不會出錯,c_str()返回的是一個臨時指針,不能對其進行操作
新聞熱點
疑難解答