У меня есть данные 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 представляется как ^
Похоже, что вы находитесь в системе Windows, или что данные возникли в системе Windows. В системе Windows символ новой строки на самом деле состоит из двух символов: "\r\n"
, То, что вы видите как ^M
символ возврата каретки ('\r'
) этой новой строки.
Один из способов удалить эти лишние символы — использовать std::string::find
а также std::string::erase
в петле.
Другой способ — вручную, посимвольно копировать в новый std::string
кроме случаев, когда персонаж '\r'
,
Других решений пока нет …