解题思路:

因为在原数组上直接操作可能会比较复杂、麻烦,所以我们可以定义3个字符串,第一个、第二个字符串a、b用于输入,

第三个字符串c用于操作,最后我们输出的也是第三个字符串c。


我们大概可以分为三部走:

第一步:将a前面的n字符复制到c

第二部:将b的内容复制到c

第三步:将a剩余的字符复制到c


注意事项:

题目要求是插入字符串,不要弄错成插入单个字符哦~

参考代码:


#include<stdio.h>
#include<string.h>

int main(){
    char a[1314],b[520],c[9420];
    int n;
//----------------输入---------------------
  
    //例:strng i 4 
    scanf("%s %s %d",a,b,&n);
      
//----------------第一部分---------------------
  
    //将前n个字符复制到字符串c。
    //例:a:strng
    //    c:str
    strncpy(c,a,n-1);
      
//----------------第二部分--------------------
  
    //将字符串b连接到a
     //例:b:i 
    //    c:stri
    strcat(c,b);
      
//----------------第三部分------------------
 
    //将字符串a剩余的字符连接到c 
    //例:b: strng
    //    c:string
    strncat(c,a+n-1,strlen(a)-n+1);
     
//-----------------输出-------------------
 
    printf("%s\n",c);
    return 0;
}


ps:理论上用链表会方便一点,感兴趣的同学可以自己试一下(¬‿¬)

点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论