如何通过空字符('\ 0')初始化字符串数据类型变量?
string txt='\0';
对还是错?
答案 0 :(得分:2)
这是错误的,因为没有std::string
的{{1}}构造函数。如果您想构造一个char
,其中有一个空终止符(无论出于何种原因),则应使用其他构造函数:
std::string
请注意,这是对它的面值提出疑问的答案。您可能根本不需要这个,但是我不确定这一点。
答案 1 :(得分:0)
首先要了解,要使std::string::c_str()
工作,std::string
总是分配用于终止零的空间,因此默认构造函数很可能会为您完成工作。
另一方面,如果您需要长度不为零且内部包含零的字符串,则有两种方法。
std::string txt(1, '\0');
用作@SergeyA,取代其他ansewear。 (这将适用于旧的C ++ 03)。
using namespace std::literals::string_literals;
auto s2 = "\0"s;