字符串数据类型变量的初始化

时间:2019-01-14 16:38:32

标签: c++ string stdstring

如何通过空字符('\ 0')初始化字符串数据类型变量?

string txt='\0'; 

对还是错?

2 个答案:

答案 0 :(得分:2)

这是错误的,因为没有std::string的{​​{1}}构造函数。如果您想构造一个char,其中有一个空终止符(无论出于何种原因),则应使用其他构造函数:

std::string

请注意,这是对它的面值提出疑问的答案。您可能根本不需要这个,但是我不确定这一点。

答案 1 :(得分:0)

首先要了解,要使std::string::c_str()工作,std::string总是分配用于终止零的空间,因此默认构造函数很可能会为您完成工作。

另一方面,如果您需要长度不为零且内部包含零的字符串,则有两种方法。

  1. std::string txt(1, '\0');用作@SergeyA,取代其他ansewear。 (这将适用于旧的C ++ 03)
  2. 使用string literal suffix operators,这是更方便的IMO。

using namespace std::literals::string_literals;
auto s2 = "\0"s;

Here is live example