rt,为什么我的replace没有执行成功
#include<iostream>
#include<algorithm>
#include<cmath>
#include<string>
using namespace std;
#define ll long long
string a1[1000],b1[1000],A,B,m,n;
ll cnt=1,ans=99999;
ll checktihuan(string a,ll k)//可正常运行
{
ll num1=a1[k].length(),ans=-1;
for(ll i=0;i<a.length()-num1+1;i++)
{
bool flag1=true;
for(ll j=i;j<=i+num1-1;j++)
{
if(a[j]!=a1[k][j])
{
flag1=false;
break;
}
}
if(flag1)
{
ans=i;
break;
}
}
return ans;
}
void tihuan(string a,ll k,ll j)
{
a.replace(j,a1[k].length(),b1[k]);//就是这里,执行的时候没有替换
}
void dfs(string a,ll step)
{
ans=min(ans,step);
if(step>=ans)return;
for(ll i=1;i<=cnt;i++)
{
ll num2=checktihuan(a,i);
if(num2!=-1)
{
tihuan(a,i,num2);
step++;
dfs(a,step);
step--;
}
}
}
int main()
{
cin>>A>>B;
while(cin>>m>>n)
{
a1[cnt]=m;
b1[cnt++]=n;
}
cnt--;
tihuan(A,1,0);
cout<<A;
}