創建帶有嵌入空字符的std::string
問題:
嘗試時構造一個std::string ,其中一行包含嵌入的空字元 ( ),例如as:
std::string my_string("a<pre class="brush:php;toolbar:false">#include <iostream> #include <string> int main() { using namespace std::string_literals; std::string s = "pl-<pre class="brush:php;toolbar:false">std::string x("pqrs"); // Two characters because input assumed to be C-String std::string x("pqrs",5); // 5 Characters because input is now a char array with 5 characters.
只保留空字元之前的字元。如何正確建構嵌入空字元的字串?
解決方案:
自C 14
C 14 引入字串文字,允許使用s 直接建立空字元的std::strings後綴:
在C 14 之前
在C 14 之前,std::string 建構函數假設輸入是C 樣式字串,以空字元。要處理嵌入的空字符,請使用採用 char 數組和長度的構造函數:
注意: std::string 本質上不是以 null 結尾的。但是,c_str() 方法提供了一個指向內部緩衝區的指針,該緩衝區包含帶有有空終止符的 C 字串。
以上是如何在 C 中建立帶有嵌入空字元的 std::string ?的詳細內容。更多資訊請關注PHP中文網其他相關文章!