zoukankan      html  css  js  c++  java
  • 不使用string库来实现指定位置字符串的插入(初学指针)

    好久没写随笔了,今天是十二月的第一天,也是2020年的最后一个月,在这个特殊的日子中,祝大家好运连连。

    好的开始,由于初学,对于指针的理解并不是特别透彻,因此这个代码只是通过实验指导勉强搞出来的,可能漏洞有很多,望各位大佬批评指正。

    (ps:其实我应该先把之前作的矩阵转置给搞出来的,这个虽然是用到了指针,但是涉及的特别少,有点挂羊头卖狗肉的意味了)

    话不多说,直接上代码:

    #include <stdio.h>
    #include <stdlib.h>
    void charu(char *str1,char *str2,int n);/*声明定义的函数*/ 
    int main(){
           char str1[100];
           char str2[100];
           int n;
           printf("请输入原字符串
    ");
           gets(str1);
           printf("请输入所要插入的字串
    ");
           gets(str2);
           printf("请输入从第几位插入
    ");
           scanf("%d",&n);
           charu(str1,str2,n);
    } 
    void charu(char *str1,char *str2,int n){
        int n1=0,n2=0;/*将原数组拆分成两个数组,之后和要插入的数组进行重组*/ 
        while(str1[n1]!=0){/*测量str1的长度*/ 
            n1++;
        } 
        while(str2[n2]!=0){/*测量str2的长度*/ 
            n2++;
        }
        char str[100]; 
        int i,k,m;
        for(i=0;i<n;i++){/*将插入前的元素分配到str中*/ 
            str[i]=str1[i];
        }
        for(i=n;i<n2+n;i++){/*将插入的元素分配到str中*/
            str[i]=str2[i-n];
        }
        for(i=n+n2;i<n2+n1;i++){/*将str1剩余的元素分配到str中*/
            str[i]=str1[i-n2];
        }
        printf("%s",str);/*输出*/ 
    
    }

    输出结果如下:

    请输入原字符串
    ilovechina
    请输入所要插入的字串
    very
    请输入从第几位插入
    1
    iverylovechina
    --------------------------------
    Process exited after 6.873 seconds with return value 14
    请按任意键继续. . .

    ok,这边稍微解释以下原理,其实看注释应该已经可以理解一个大半了,就是通过把原来的字符数组给拆分成插入前的部分和插入后的部分,然后将他们和要插入的字符数组进行重组输出,唯一不好理解的应该就是那个i的取值。

    下次再写随笔可以把之前写的类似的不使用string库来实现函数的几个代码搞出来,顺便那个矩阵也可以提上日程,以便期末的复习。

    人生如逆旅,我亦是行人
  • 相关阅读:
    队列加分项
    队列课下作业
    20162306 2017-2018-1 《程序设计与数据结构》第7周学习总结
    20162306 2017-2018-1 《程序设计与数据结构》第5周学习总结
    20162306陈是奇 第一次实验报告
    20162306 2017-2018-1 《程序设计与数据结构》第3周学习总结
    20162306 陈是奇 2017-2018-1 《程序设计与数据结构》第1周学习总结
    数据库实验补充
    2017-2018-1 20162304 实验二 树
    队列加分项
  • 原文地址:https://www.cnblogs.com/sz2003/p/14071284.html
Copyright © 2011-2022 走看看