なぜ私はstring.eraseでstring.findを呼び出すことができないように:str.erase(str.find(a[1]),str.size())
? 編集:コードはどのようにstring.eraseとstring.findを使用しますか?
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
// html tags
string tags[5]={"<!--...-->","<!DOCTYPE>","<a>","<abbr>","<acronym>"};
//
//check if string exists
int boolStringExists(string a, string b)
{
if(a.find(b)>0)
{
return 1;
}
if(a.find(b)<=0)
{
return 0;
}
}
//erase tag from string a
void eraseTags(string a,string b[])
{
for(int i=0; i<5;i++)
{
int x=(boolStringExists(a,b[i]));
while (x>0)
{
a.erase(a.find(b[i]),b[i].size());
x=(boolStringExists(a,b[i]));
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
fstream file;
file.open("h:\\a.htm");
string k,m;
while(getline(file, k))
m += k ;
eraseTags(m,tags);
return 0;
}
を追加しましたが、このメッセージを表示します。「このアプリケーションはより多くの情報については、アプリケーションのサポートチーム珍しいway.Please接触して、それを終了するランタイムを要求しました。」 https://ideone.com/8wibR
EDIT:あなたの完全なソースコードがb[1]
があるかどうかをチェックするために失敗したその呼び出しと間違って何もない
思いますなぜ?エラーがある場合は、関連するコードと共に投稿してください。理想的には、エラーをコンパイル、実行、再現する最小のコード例です。 –