Каков правильный способ удаления \0
char из заданной строки.
Я пытаюсь без успеха:
std::string msg(data); // Data comes from a remote system connected via socket...
msg.erase(std::remove(msg.begin(), msg.end(), '\0'), msg.end());
Это дает ошибку компиляции:
error: cannot convert ‘std::__cxx11::basic_string<char>::iterator {aka __gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >}’ to ‘const char*’ for argument ‘1’ to ‘int remove(const char*)’
data
поступает из удаленной системы с использованием сокета и содержит несколько фрагментов кодовых номеров с /0
в середине из-за исходной логики.