c++ - C++ 中的字符串对象末尾是否有空字符?

标签 c++ string

我们都知道有一个空字符会自动附加到 C 字符串的末尾......那么 C++ 字符串对象呢?末尾也有空字符吗?

非常感谢!

最佳答案

在 C++03 中,不需要将 std::string 存储在以 NUL 结尾的缓冲区中,但是如果您调用 c_str(),它将返回一个指向 NUL- 的指针终止缓冲区。该缓冲区可以在 c_str() 调用中合法创建和/或终止。

在 C++11 中,所有 std::string 实例都被终止,因此 data() 也寻址一个以 NUL 终止的缓冲区,甚至 s [s.size()] 具有明确定义的含义,返回对终止 NUL 的引用。

关于c++ - C++ 中的字符串对象末尾是否有空字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17780514/

相关文章:

c++ - 断言中的 Lambda

c++ - C++ 中的空 std::shared_ptr 和空 std::shared_ptr 有什么区别?

c++ - 如何将 char 数组插入另一个 char 数组?

arrays - 快速将文本数据读入数组

c++ - 应用程序完成时未处理的异常

c++ - 不一定获取成员值的getter方法?

c++ - 错误 : Expression must have (Pointer-to-) function type

c - 终端不允许我打印指向末尾没有换行符的字符串的指针 - C

java - 将逗号分隔的字符串拆分为多个新字符串

php - 从php中的字符串中删除俄语字母