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



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

string txt=''; 

是对还是错?

这是

错误的,因为没有std::string的构造函数需要char。如果要构造一个包含 null 终止符的std::string(无论出于何种原因),都应使用不同的构造函数:

std::string txt(1, '');

请注意,这是对其表面价值提出质疑的答案。你可能根本不需要这个,但我不确定。

首先要明白,为了使std::string::c_str()工作,std::string总是为终止零分配空间,所以很可能默认构造函数会为你完成这项工作。

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

  1. 使用std::string txt(1, '');,因为@SergeyA在其他安塞服中吸食。(这将适用于旧C++03)
  2. 使用字符串文字后缀运算符,这是更方便的 IMO。

.

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

这是现场示例。

最新更新