字符串替换和奇怪的字符

String replacement and strange characters

本文关键字:字符 替换 字符串      更新时间:2023-10-16

我在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有关,因为选项卡由 ^I 表示,cntrl 表示为 ^

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

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

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