创建带有嵌入空字符的 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中文网其他相关文章!