Перегрузка 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);
Обратите внимание, однако, что std::string
является typedef для std::basic_string<char>
. Поскольку char
может не быть подписано на вашей платформе, вы можете не получить желаемого поведения для сравнения. Вы должны убедиться, что char
подписано на вашей платформе, или вы можете использовать свой собственный typedef для предотвращения проблем, если платформа (или сборка) изменится в будущем:
typedef std::basic_string<signed char> sstring; // or whatever name you like