【发布时间】:2012-07-31 10:21:56
【问题描述】:
我有一个最初是 CString 的 html/xml 文档,我想去掉所有的换行符,基本上将所有内容放在一行中。我尝试将其转换为 std::String 并使用:
#include <algorithm>
#include <string>
str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());
但是没有用。
【问题讨论】:
-
如果你有一个 char*(我从你的主题解释的 c 字符串),为什么不沿着每个 char 移动并使用这样的东西:
if(string[i] == '\n') string[i] = ' ';不完全是一本书如何描述好的代码(因为可能有用于此目的的特殊功能)但这将是一个有效的修复。 -
这是我说的 CString:msdn.microsoft.com/en-us/library/ms174288.aspx
-
在 Windows 上,换行符不是“\n”而是“\r\n”。
-
除非您想用另一个字符(例如空格)替换换行符,否则没有任何方法可以做到这一点。你可以做的是遍历字符串中的每个字符,将它们附加到另一个字符串,除非当前字符是换行符,完成后你有一个不包含换行符的新字符串。
-
看来我可能错了...
Remove函数呢?
标签: c++ xml string newline cstring