문자열에서 지우기 기능에 문제가 있습니다. 특정 색인에서 한 문자를 삭제할 수 없습니다. 아마도 "int"를 반복자로 사용할 수 없습니까? 일부 문자를 삭제하고 싶습니다.문자열에서 문자를 지우는 방법은 무엇입니까?
#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;
}
내 오류 : 당신이 5의 위치를 위치 6 변화에 무엇 위치 5 말하자면,에서 문자를 삭제하고, 문자열 길이가 1 씩 감소 후
This application has requested the Runtime to terminate it in an unusual way
tmp 란 무엇입니까? inputText? inputChars? 샘플 입력, 표시 선언 등을하십시오. –
오류를 나타내는 ** 짧은 **, ** 완료 ** 프로그램을 제공해주십시오. 그 프로그램의 결과물이 무엇이고 실제로 무엇이 될 것이라고 기대하십니까? 자세한 내용은 http://sscce.org를 참조하십시오. –
게시 한 코드에 문제가 없습니다. 그것은 당신의 프로그램에있는 다른 곳입니다. 오류는 프로그램이 비정상적으로 종료되었음을 보여줍니다. 가능한 경우 전체 프로그램을 게시하십시오. –