data和c_str data()和c_str()都是用來獲取底層字符串的首地址的,但是在C++98中規定的是data()返回的字符串不保證有結尾\0,但是c_str()返回的字符串保證有結尾\0,也就是C++98標准在設計字符串的時候是想拋棄C風格的字符串語法的,但是在實際應用中,往往需要 ...
從C 標准上的解釋來看,只有一點區別: c str 返回一個指向正規C字符串的指針常量,該指針保證指向一個 size 長度的空間,而且最后一個字符肯定是 而 data 返回的指針則保證指向一個size 長度的空間,不保證有沒有null terminate,可能有,可能沒有,看庫的實現了。 有的STL的實現中,二者是完全一樣的,如vs . ,兩個函數的源碼中,data 函數內部調用的是c str ...
2018-04-20 17:40 0 8329 推薦指數:
data和c_str data()和c_str()都是用來獲取底層字符串的首地址的,但是在C++98中規定的是data()返回的字符串不保證有結尾\0,但是c_str()返回的字符串保證有結尾\0,也就是C++98標准在設計字符串的時候是想拋棄C風格的字符串語法的,但是在實際應用中,往往需要 ...
看下面的英文解釋: const char* c_str ( ) const;Get C string equivalentGenerates a null-terminated sequence of characters (c-string) with the same content ...
看下面的英文解釋: const char* c_str ( ) const;Get C string equivalentGenerates a null-terminated sequence of characters (c-string) with the same content ...
先看一段代碼和它的運行結果: 看到結果了么這個運行的結果和我們理解的是不會有差距.對於經驗豐富的開發者可能會微微一笑,但是對於一個剛剛學習的人就開始疑惑了.這里主要說兩個問題: 1、聲明了一個string實例,使用c_str()進行賦值后,可以正常輸出c_str()的值 ...
c_str函數的返回值是const char*的,不能直接賦值給char*。 c++語言提供了兩種字符串實現,其中較原始的一種只是字符串的 c語言 實現。與C語言的其他部分一樣,它在c++的所有實現中可用,我們將這種實現提供的字符串對象,歸為c-串,每個c-串char*類型 ...
標准庫的string類提供了3個成員函數來從一個string得到c類型的字符數組:c_str()、data()、copy(p,n)。 1. c_str():生成一個const char*指針,指向以空字符終止的數組。 注: ①這個數組的數據是臨時的,當有一個改變這些數據的成員函數被調用 ...
::string::c_str c_str()函數返回一個指向正規C字符串的指針常量, 內容與 ...
這個問題找了很多沒有找到滿意的答案。仔細看了一下,是使用了c_str的問題。 我直接把使用string.c_str的地方使用char*代替即解決問題。 ...