Я пишу код в C++, где я есть входную строку, которая идет какКак заменить^М с пустым пространством С ++
\ п {^ М «ид»: «два»,^М «GUID ": "49709bb3-7444-40bf-9032-cc65e36d26f5"^M "IsActive": правда,^М
"баланс": "1645,00"^M "картинка":" http://placehold.it/32x32 "^ M
" возраст ": 28,^М "имя": "Эльвира Од"^M "гендер": "женская",^М
"компания": "Homelux",
У меня нет контроля над входной строкой.
Мне нужно напечатать эту строку, которая хранится в p1f0-> str, в файл и проанализировать ее для других целей.
Но символ^M испортит вещи во время разбора, и, следовательно, я хотел бы избавиться от него.
Итак, для того, чтобы избавиться от символов^M, я делаю это, и это не Рабоче
struct specialStr {
uint32 len;
char str[0];
}
specialStr p111;
p111....
....
std::string raww = (char*) p111->str;
boost::replace_all(raww, "^M", " ");
strncpy(p111->str, raww.c_str(), sizeof(raww));
p111->len = (uint32) (raww.size());
p111->str[p111->len - 1] = 0;
Но, похоже, не будет никакого эффекта.
Может кто-нибудь, пожалуйста, скажите мне, что я здесь делаю неправильно? Спасибо
Что вы имеете в виду? То, что я вставил, не было скомпилированным кодом. Это всего лишь образец фрагмента! – VictorCreator
'p111-> str' имеет размер' 0' ... – LPs
Что это такое: 'std :: string raww = (char *) p111-> str;' ??? – LPs