std::string 是否有內建的空終止符?
與普遍看法相反,std::string 本身並沒有內建的空終止符。攜帶空終止符“”。此行為與字元陣列不同,字元陣列會自動附加一個空字元來表示字串的終止。
但是,此規則有一個重要的例外:temp.c_str() 方法。當您呼叫此方法時,傳回的字串將包含一個空終止符。這允許以與傳統 C 風格字串相容的方式處理字串。
此外,需要注意的是,您可以在 std::string 中明確包含空字符,就像任何其他字符。透過將 ' ' 指派給字串中的字元位置,您可以有效地將字串分成兩個子字串。
例如,考慮以下程式碼片段:
string s("hello"); cout << s.size() << ' '; s[1] = '<pre class="brush:php;toolbar:false">5 5
此程式碼的輸出程式碼為:
,這表示空字元不會影響字串的感知大小。原因是空字元在 std::strings 的上下文中沒有特殊意義。
以上是`std::string` 是否包含空終止符?的詳細內容。更多資訊請關注PHP中文網其他相關文章!