Замена строки и странные символы

У меня есть данные HTML в char* и я хотел бы получить это построчно, сделать некоторые замены, а затем сложить их все вместе в одну строку. Это код, который я использую

std::string to, finalData;
finalData = "";
char* char_array = strtok(data, "\n");
while(char_array){
finalData += std::string(char_array);
char_array = strtok(NULL, "\n");
}

Проблема в данных, которые я получаю в конце этого (finalData) много ^M символов, и я не могу найти его, так как он имеет специальный символ. Есть ли способ полностью устранить персонажа?
Я предполагаю, что это как-то связано с преобразованием массива c в строку c ++ и \n как вкладка представлена ^I и cntrl представляется как ^

1

Решение

Похоже, что вы находитесь в системе Windows, или что данные возникли в системе Windows. В системе Windows символ новой строки на самом деле состоит из двух символов: "\r\n", То, что вы видите как ^M символ возврата каретки ('\r') этой новой строки.

Один из способов удалить эти лишние символы — использовать std::string::find а также std::string::erase в петле.

Другой способ — вручную, посимвольно копировать в новый std::stringкроме случаев, когда персонаж '\r',

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]