Как в тексте удалить все переводы строк и превратить все в одну строку?
Я получаю текст из большого количества строк, мне необходимо его превратить в одну длинную строку. Пробовал так:
int main()
{
string content;
string str;
curl_global_init(CURL_GLOBAL_ALL);
CURL* curl = nullptr;
curl = curl_easy_init();
if (curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "https://google.ru/");
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &content);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writer);
CURLcode code = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
str = content;
remove_copy(content.begin(), content.end(), back_inserter(str), '\n');
ofstream file;
file.open("html.txt");
file << str;
}
Ответы (2 шт):
Автор решения: BlackMagic
→ Ссылка
Ответ нашел!
string str1, str2;
remove_copy(content.begin(), content.end(), back_inserter(str1), '\n');
remove_copy(str1.begin(), str1.end(), back_inserter(str2), '\r');
Автор решения: HolyBlackCat
→ Ссылка
Можно вообще не вводить дополнительную строку:
std::erase_if(content.begin(), content.end(), [](char ch){return ch == '\r' || ch == '\n';});
Если компилятор не поддерживает std::erase_if, то так:
content.erase(std::remove_if(content.begin(), content.end(),
[](char ch){return ch == '\r' || ch == '\n';}), content.end());