1

に HTML データがあり、char*それを行ごとに取得し、いくつかの置換を行ってから、それらをすべて 1 つの文字列にまとめたいと考えています。これは私が使用するコードです

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文字が含まれており、特殊文字があるため検索できないことです。キャラクターを完全に削除する方法はありますか?\n私はそれがc配列からc ++文字列への変換と関係があり、タブがで表され^I、cntrlが次のように表されることと関係があると推測しています^

4

1 に答える 1

4

Windows システムを使用しているか、データが Windows システムで作成されたようです。Windows システムでは、改行は実際には 2 文字です: "\r\n". あなたが見ているのは、その改行シーケンスの^M復帰文字 ( ) です。'\r'

これらの余分な文字を削除する 1 つの方法は、std::string::findandstd::string::eraseをループで使用することです。

もう 1 つの方法はstd::string、文字が'\r'.

于 2012-12-05T11:53:31.867 に答える