这个为什么会进入死循环?求大佬回复
#include<stdio.h>#include<string.h>
#define N 100
int main()
{
char s[N],t[N],*p,*p1;
int i,j,k,a,b;
while(scanf("%[^\n] %[^\n]",s,t)!=EOF){
p=s;p1=t;
a=strlen(s);b=strlen(t);
k=0;
for(j=1;j<a;j++)
if(*(p+k)<=*(p+j))
k=j;
p=p+k+1;
while(*p1!='\0'){
*(p+b)=*p;
*p=*p1;
p++,p1++;
}
*(p+b)='\0';
printf("%s\n",s);
}
}