为什么我的程序有时能运行有时不能?
#include<bits/stdc++.h>
using namespace std;
set<string> ans;
void str(string a,string b){
char c[1000],d[1000];
for(int i=0;i<a.size();i++){
c[i]=a[i];
d[i]=b[i];
}
sort(d,d+a.size());
sort(c,c+b.size());
// c[a.size()]=0;
// d[b.size()]=0;
bool hlh=1;
for(int i=0;i<a.size();i++){
if(c[i]!=d[i])hlh=0;
}
if(hlh)ans.insert(b);
}
int main(){
string h;
string n;
cin>>h>>n;
string l="";
for(int i=0;i<h.size()-n.size();i++){
l="";
int k=i;
for(int j=0;j<n.size();j++)l+=h[k++];
str(n,l);
}
cout<<ans.size();
}