文字列からの消去機能に問題があります。特定のインデックスから 1 文字も削除できません。多分私は int "i" を iterator として使うことはできませんか?一部の文字を削除したい。
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
void deleteChars(string inputText, string inputChars);
int main(int argc, char *argv[])
{
string tekst1 = ("mama fama lilo babo sabo");
string tekst2 = ("mabo");
deleteChars(tekst1, tekst2);
system("PAUSE");
return EXIT_SUCCESS;
}
void deleteChars(string inputText, string inputChars){
int a = inputText.size();
int b = inputChars.size();
string tmp = inputText;
for(int i=0; i<a; i++){
for(int j=0; j<b; j++){
if(inputText.at(i)==inputChars.at(j)){
tmp.erase(i,1); //Here is my problem ?
}
}
}
inputText = tmp;
cout<<"text: "<<inputText<<endl;
}
私のエラー:
This application has requested the Runtime to terminate it in an unusual way