字符串插入问题
#include<iostream>using namespace std;
void qaz(char *a,char *b)
{
int i,j,k,n;
char max=a[0];
for(i=0;i<strlen(a);i++)
if(max<a[i])
{
max=a[i];
n=i;
}
for(j=strlen(b)-1;j>=0;j--)
{
for(k=strlen(a)+1;k>n+1;k--)
a[k]=a[k-1];
a[n+1]=b[j];
}
}
int main()
{
char a[100],b[50];
cout<<"本程序是在a串最大字符后面插入b串"<<endl<<endl;
cout<<"输入a串:";
cin.getline(a,sizeof(a));
cout<<"输入b串:";
cin.getline(b,sizeof(b));
qaz(a,b);
cout<<endl<<"插入后"<<endl;
cout<<"刷新a串:"<<a<<endl;
cout<<"刷新b串: "<<b<<endl;
system("pause");
return 0;
}
当我输入a串:aaazxxx
b串:bbb
运行都很正常
当我输入a串:ni hao ma?
b串:ni hao
运行时程序崩溃
这是为什么?