如何用空白 space C++ 替换 ^M
How to replace ^M with blank space C++
我正在用 C++ 编写代码,其中我有一个输入字符串
\n{^M "id": "two",^M "guid":
"49709bb3-7444-40bf-9032-cc65e36d26f5",^M "isActive": true,^M
"balance": "1645.00",^M "picture": "http://placehold.it/32x32",^M
"age": 28,^M "name": "Elvira Odom",^M "gender": "female",^M
"company": "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 的方式:CARRIAGE RETURN。
您可以在 C 或 C++ 中轻松地将其编码为 "\r"
。
我正在用 C++ 编写代码,其中我有一个输入字符串
\n{^M "id": "two",^M "guid": "49709bb3-7444-40bf-9032-cc65e36d26f5",^M "isActive": true,^M
"balance": "1645.00",^M "picture": "http://placehold.it/32x32",^M
"age": 28,^M "name": "Elvira Odom",^M "gender": "female",^M
"company": "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 的方式:CARRIAGE RETURN。
您可以在 C 或 C++ 中轻松地将其编码为 "\r"
。