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

输入两个字符串s1、s2和s1中任意字符k,在s1中的指定字符k第一次出现的位置处插入字符串s2并输出。输入:两个字符串s1、s2和s1中任意字符k输出:插入后的字符串s... 输入两个字符串 s1 、 s2 和 s1 中任意字符 k ,在 s1 中的指定字符 k 第一次出现的位置处插入字符串 s2 并输出。输入: 两个字符串 s1 、 s2 和 s1 中任意字符 k 输出: 插入后的字符串 s1 如输入beijing 123 j输出 bei123jing 展开
 我来答
匿名用户
2011-10-20
展开全部
#include "stdio.h"
#include<string.h>
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<len1+d;i++)
{
if(s1[i]==k && d==0)
{
for(j=0;j<len2;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;
}
上善若水xiao
2011-10-23
知道答主
回答量:23
采纳率:0%
帮助的人:8.6万
展开全部
利用string的一些函数来实现,算法简单明了,已经讲过验证,你可以直接复制粘贴
#include<iostream>
#include<vector>
#include<algorithm>
#include<string>
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<<s1<<endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
furious_tauren
2011-10-20 · TA获得超过4055个赞
知道大有可为答主
回答量:1913
采纳率:100%
帮助的人:761万
展开全部
#include <stdio.h>

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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式