首頁 > 後端開發 > C++ > 如何在 C 中建立帶有嵌入空字元的 std::string ?

如何在 C 中建立帶有嵌入空字元的 std::string ?

Linda Hamilton
發布: 2024-12-01 02:38:11
原創
774 人瀏覽過

How Can I Create a std::string with Embedded Null Characters in C  ?

創建帶有嵌入空字符的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.
登入後複製
-op"s; // Notice the "s" at the end of the string literal std::cout << s << "\n"; }b");

只保留空字元之前的字元。如何正確建構嵌入空字元的字串?

解決方案:

自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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板