如果我想用这样的一行构造一个 std::string:std::string my_string("a\0b"); 我想在最终的字符串中包含三个字符(a,null,b),但我只得到了一个。正确的语法是什么? 我希望最终的字符串包含三个字符(a,null,b),但我只得到了一个。请问应该使用什么正确的语法?
几乎所有的std::string实现都是以空字符结尾的,所以你可能不应该这样做。请注意,“a\0b”实际上有四个字符,因为自动添加了空字符终止符(a、null、b、null)。如果你真的想这样做并且打破std::string的约定,你可以这样做:std::string s("aab"); s.at(1) = '\0'; 但是如果你这样做了,所有的朋友都会嘲笑你,你永远也找不到真正的幸福。