如题所述
第1个回答 推荐于2017-05-21
#include <stdio.h>
#include <string.h>
#define N 400
#define M 200
int main(void)
{
char a[N], b[M];
int i, s=0;
printf("输入a:");
gets(a);
printf("输入字符串b:");
gets(b);
for (i=0; a[i+1]!='\0'; i++)
if (a[i+1] < a[s])
s = i+1;
a[s+1] = '\0';
strcat(a, b);
puts(a);
return 0;
}追问
#include <string.h>
#define N 400
#define M 200
int main(void)
{
char a[N], b[M];
int i, s=0;
printf("输入a:");
gets(a);
printf("输入字符串b:");
gets(b);
for (i=0; a[i+1]!='\0'; i++)
if (a[i+1] < a[s])
s = i+1;
a[s+1] = '\0';
strcat(a, b);
puts(a);
return 0;
}追问
你的这个程序好像第二个字符串插入第一个之后,插入位置后边的就被没了,我要的是还有插入后边的元素
追答#include
#include"string.h"
main( )
{
char a[200],b[100],min;
int c,d,i,e,j,n=0;
printf("输入字符串a:");
gets(a);
printf("输入字符串b:");
gets(b);
c=strlen(a);
e=strlen(b);
min=a[0];
d=0;
for(i=1;i<c;i++)
{
if(min<a[i])
{min=a[i];
d=i;
}
}
for(j=d+1;j<=c;j++)
a[j+e]=a[j];
a[j+e]='\0';
for(j=d+1;j<d+e+1;j++,n++)
{if(b[n]!='\0')
a[j]=b[n];
}
puts(a);
}