c语言用指针法在一个字符串的指定位置插入一个字符串

 我来答
星月小木木
2016-01-13 · TA获得超过3.2万个赞
知道大有可为答主
回答量:2.4万
采纳率:0%
帮助的人:9583万
展开全部

设计过程:

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

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

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

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

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

输出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 ); //输出字符串
}

匿名用户
推荐于2018-03-13
展开全部
#include <stdio.h>
#include <string.h>
void insert_str(char str1[],char str2[],int position)
{ int i;
char *p_end,*p_cur,*p p_end=str1+strlen(str1)-1;
p_cur=str1+position-1;
for(i=0;str2[i]!='\0';i++)
{
for(p=p_end;p>=p_cur;p--)
{
*(p+1)=*p; }
*p_cur=str2[i]; p_cur++; p_end++; }
}

void main()
{
char s1[100],s2[20];
int position;
printf("输入字符串1:\n");
gets(s1);
printf("输入插入位置:");
do
{
scanf("%d",&position);
while(getchar()!='\n'); }while(position<0||position>strlen(s1));
printf("输入字符串2:\n");
gets(s2);
insert_str(s1,s2,position);
printf("字符串被插入后变成:\n");
puts(s1);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式