我在char*
中有一个HTML数据,我希望逐行获取,进行一些替换,然后将它们全部添加到一个字符串中。这是我使用的代码
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
有关,因为tab由^I
表示,cntrl表示为^
答案 0 :(得分:4)
您似乎在Windows系统上,或者数据源自Windows系统。在Windows系统上,换行实际上是两个字符:"\r\n"
。您看到的^M
是该换行符序列的回车符('\r'
)。
删除这些额外字符的一种方法是在循环中使用std::string::find
和std::string::erase
。
另一种方法是逐个字符地手动复制到新的std::string
,除非字符是'\r'
。