建構帶有嵌入空字符的std::string
嘗試使用以下語法創建帶有嵌入空字符的std::string時std::string my_string("a\0b"); 只保留一個字元。發生這種情況是因為 std::string 建構子需要一個以 null 結尾的 C 字串。遇到 null 字元時,解析會停止。
要正確建構嵌入null 的std::string,請考慮以下方法:
C 14 及更高版本:
使用s 後綴引入字串文字來建立std::string 而不解釋空字元。這可以透過以下方式實現:
std::string s = "pl-<pre class="brush:php;toolbar:false">std::string x("pqrs", 5);-op"s;
Before C 14:
利用接受字元陣列及其長度的字串建構子:
請記住,std::string 不使用空終止。但是,透過 c_str() 方法,您可以獲得指向包含 C 字串的內部緩衝區的指標。
以上是如何建立帶有嵌入空字元的 std::string?的詳細內容。更多資訊請關注PHP中文網其他相關文章!