爲什麼不能在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聯繫人應用程序的支持團隊以獲取更多信息。」
:
現在,這不給錯誤?如果您有錯誤,請將其與相關代碼一起發佈。理想情況下,這是一個編譯,運行和再現錯誤的最小代碼示例。 –