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
展开
 我来答
kaixingui2012
2015-09-15 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6433万
展开全部

设计过程:

  1. 定义两个字符串s2,s2,字符k

  2. 输入两个字符串 s1 、 s2 和 s1 中任意字符 k 

  3. 先遍历 s1 找到指定字符 k,记录下当前位置 

  4. 从k字符开始,按s2的长度后移其余的数据

  5. 将s2拷贝到k所在的位置

  6. 输出s1。

代码如下:

#include <stdio.h>
#include <string.h>
void main()
{
    char s1[100];
    char s2[20];
    char k;
    int i,pos,len;
    printf("input s1: ");scanf("%s", s1 );
    printf("input s2: ");scanf("%s", s2 );
    getchar();//滤掉回车符
    printf("input k: ");scanf("%c", &k );
    for( i=0;s1[i];i++ )
    {
        if ( s1[i]==k )
            break;
    }
    pos=i; //记录下待插入的位置
    len=strlen(s2); //得到s2长度
    for( i=strlen(s1);i>=pos;i-- ) //后移字符串
    {
        s1[i+len]=s1[i];
    }
    strncpy( &s1[pos], s2, len ); //插入数据
    printf("%s\n", s1 ); //输出字符串
}
匿名用户
2013-09-07
展开全部
一楼的胡说,我告诉你将s1定义数组赋值,将s2定义数组赋初值,将数组S3包含S1和S2并移位,将S3输出就OK了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-07
展开全部
把"beijing"放到字符数组中.
把"123"放到另一个字符数组中.
在申请一个足够大的数组空间,按照这个下表给赋上这两个字符值.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-07
展开全部
也许用链表比较好实现,下面是用数组实现的程序:
#include<stdio.h>
#include<string.h>
main()
{ int i,j,k,m,n;
char a[100],b[100],c;
gets(a);
gets(b);
c=getchar();
m=strlen(a);
for(i=0;i<m;i++)
{if(a[i]==c)<br/> break;<br/> }
if(i>=m)
{printf("出错!\n");<br/> return;<br/> }
n=strlen(b);
k=m;
for(j=m+n;j>i;j--,k--)
a[j]=a[k];
for(j=i,k=0;j<n+i;j++,k++)
a[j]=b[k];
printf("%s\n",a);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式