C语言中怎样才能在指定位置插入字符串

2025-03-23 23:10:44
推荐回答(3个)
回答1:

#include "stdio.h"
#include
int main()
{
int i,j=0,len1,len2,d=0;
char s[200]={0},s1[100],s2[100],k;
printf("Input string s1:");
scanf("%s",s1);
printf("Input string s2:");
scanf("%s",s2);
printf("Input char k:");
getchar();
k=getchar();
len1=strlen(s1);
len2=strlen(s2);
for(i=0;i {
if(s1[i]==k && d==0)
{
for(j=0;j s[i+j]=s2[j];
d=1;
}
else
s[i+j-d]=s1[i-d];
}
s[i+j-d]='\0';
printf("%s\n",s);
return 0;
}

回答2:

利用string的一些函数来实现,算法简单明了,已经讲过验证,你可以直接复制粘贴
#include
#include
#include
#include
using namespace std;

void main(){

string s1="beijing";
int pos=s1.find('j');
string s2="123";
s1.insert(s1.begin()+pos,s2.begin(),s2.end());
cout<}

回答3:

#include

int main(void)
{
char s1[128], s2[128], k, *p;
int lens1 = 0, lens2 = 0, i = 0;

scanf("%s%s", s1, s2);
getchar();
k = getchar();
printf("s1 = %s, s2 = %s, k = %c\n", s1, s2, k);

p = s1;
while (*p++) lens1++;
p = s2;
while (*p++) lens2++;

p = s1;
while (s1[i++] != k) p++;

for (i = lens1 - (p - s1); i > -1; i--)
p[i + lens2] = p[i];
p[lens1 + lens2] = '\0';

for (i = 0; s2[i]; i++)
p[i] = s2[i];

printf("%s\n", s1);
return 0;
}