如何将char*(包含所有可能的值)分配给C++字符串

era*_*ros 2 c++ string char

我是C++.我正在尝试将一个char数组附加到C++字符串.唯一的事情是这个数组可以有每个可能的值,负数,正数和0.所以当我将这个数组赋给字符串时,它会在某个时刻停止,因为它找到了一个0值.
1)字符串可以附加这些值吗?或者它们必须严格地从1到127?如果为真,
2)是否有一种方法可以保持字符串分配即使找到0也是如此?

Mic*_*urr 6

string::append( const char* s, size_t n )过载append()应该做你想要什么.假设这cpp_string是您的std::string变量或引用,并且c_string_ptr是指向字符数组的指针:

cpp_string.append( c_string_ptr, number_of_bytes);
Run Code Online (Sandbox Code Playgroud)

但请注意,它std::string是一个typedef std::basic_string<char>.由于char可能未在您的平台上签名,因此您可能无法获得所需的比较行为.您应确保char在您的平台上签名,或者您可能希望使用自己的typedef来防止以后平台(或构建版本)发生更改时出现问题:

typedef std::basic_string<signed char> sstring;  // or whatever name you like
Run Code Online (Sandbox Code Playgroud)