如何将 ^M 替换为空格C++

How to replace ^M with blank space C++

本文关键字:空格 C++ 替换      更新时间:2023-10-16

我正在用C++编写代码,其中我有一个输入字符串,如下所示

{^M "id": "two",^M "guid": "49709bb3-7444-40bf-9032-cc65e36d26f5",^M "isActive": true,^M
"余额": "1645.00",^M "图片": "http://placehold.it/32x32",^M
"年龄": 28,^M "姓名": "埃尔维拉·奥多姆",^M "性别": "女性",^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;

但似乎根本没有效果。

有人可以告诉我我在这里做错了什么吗?谢谢

顺序^M是编辑器显示控制代码 M、ASCII 代码 13:回车的方式。

  • https://en.wikipedia.org/wiki/Control_character#In_ASCII

您可以轻松地将其编码为 C 或 C++ 中的"r"