C++ c++;带额外0x0的字符串?

C++ c++;带额外0x0的字符串?,c++,C++,我有一个奇怪的带0x0的字符串,有人能帮我吗 string a = funxx(); // funxx is a external func from Crypto++ libary string b = "test" 如果我打印出a和b的内容,它们都显示为“test” a.size()为:5 b、 大小()为:4 a、 长度()为:5 b、 长度()为:4 对于(int i=0;i

我有一个奇怪的带0x0的字符串,有人能帮我吗

string a = funxx();  // funxx is a external func from Crypto++ libary
string b = "test"
如果我打印出a和b的内容,它们都显示为“test”

a.size()为:5
b、 大小()为:4
a、 长度()为:5
b、 长度()为:4
对于(int i=0;icout从
std::string
中删除尾部null的简单方法:

if (!str.empty() && *str.rbegin() == 0)
    str.resize(str.size() - 1);

std::string
可以包含嵌入的空字符,因为长度是单独跟踪的。您的打印输出已经非常清楚,
a
在结尾处有一个额外的空字符。我的魔法水晶球说
funxx
中有一个问题。您好,Praetorian。我无法发布funxx的内容,实际上是我这是我正在使用的外部库中的一个func。
std::string(a.c_str())
或使用
back()
pop_back()
@Potatoswatter我想到了这一点,但试图避免使用c++11独有的功能。
if (!str.empty() && *str.rbegin() == 0)
    str.resize(str.size() - 1);