1

我在 a 中有一个 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++ 字符串的转换有关,并且与\ntab 表示为^I和 cntrl 表示为有关^

4

1 回答 1

4

您似乎在 Windows 系统上,或者数据源自 Windows 系统。在 Windows 系统上,换行符实际上是两个字符:"\r\n". 您所看到的^M是该换行符序列的回车符 ( '\r')。

删除这些额外字符的一种方法是在循环中使用std::string::findand 。std::string::erase

另一种方法是手动逐个字符地复制到一个新的std::string,除非字符是'\r'.

于 2012-12-05T11:53:31.867 回答