0

元々CStringであるhtml/xmlドキュメントがあり、すべての改行を削除して、基本的にすべてを1行にまとめたいと考えています。std :: Stringに変換して、次を使用してみました。

#include <algorithm>
#include <string>

str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());

しかし、それはうまくいきませんでした。

4

3 に答える 3

4

テキストのブロックが奇妙に見えるのを防ぐために、改行をスペースに置き換える必要があります。改行('\ n')文字とキャリッジリターン('\ r')文字の両方を必ず置き換えてください。

CString str = "Line 1 Windows Style\r\n Line 2 Unix Style\n Line 3";
str.Replace('\r', " ");
str.Replace('\n', " ");
str.Replace("  ", " ");
于 2012-07-31T10:57:33.870 に答える
2

メソッドremoveを使用するだけで済みます

CString str = _T("Test newline \nremove"), str2;
str.Remove('\n');
于 2012-07-31T10:40:00.383 に答える
0

どうですか?

str.Replace("\n", "");

ここに文書化

于 2012-07-31T10:34:00.530 に答える