首页 > 后端开发 > C++ > 如何在 C 中创建带有嵌入空字符的 std::string ?

如何在 C 中创建带有嵌入空字符的 std::string ?

Linda Hamilton
发布: 2024-12-01 02:38:11
原创
759 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板