• 实验十—指针2


    /*输入一个字符串和一个正整数x,将该字符串中的后x个字符复制到另一个字符串y中,输出
    字符串y;再对y串的内容前后倒置后存入数组z中并输出。 要求:用指针访问数组元素、用函
    数getx(char *c1)实现复制、用函数getr(char *c2)实现倒置*/
    
    #include<stdio.h>      
    #define N 100      
    void getx(char *c1);    
    void getr(char *c2);    
    void main()    
    {  
        char a[N];    
        puts("输入一个字符串:");    
        gets(a);  /*从输入得到一个字符串*/  
        getx(a);   /*同上*/ 
    }    
    void getx(char *c1) /*将该字符串中的后x个字符复制到另一个字符串y中,输出字符串y*/   
    {  
        int i,x,k=0;
        int j=0;
        char temp[N]; /*定义一个临时数组用来储存要拷贝的字符*/   
        puts("输入正整数x:");    
        scanf("%d",&x);    
        while(*(c1+j)!='') /*把字符串拷贝给*c1;''表示结束,不然字符串没有结束符不对*/     
        {
            j++;
        }     
        for(i=j-x;i<j;i++) /*循环x次取字符串的后x个字符*/     
        {
            temp[k]=*(c1+i);  /*将后x个字符储存到临时数组中*/  
            k++;
        }     
        temp[k]='';    
        getr(temp);   /*将临时数组中的字符串代入函数getr(char *c2)中实现倒置*/ 
        puts("新的字符串是:");    
        puts(temp);    
    }
        
    void getr(char *c2) /*对y串的内容前后倒置后存入数组z中并输出*/    
    {  
        int j,k,i=0;      
        char temp[N];      
        while(*(c2+i)!='') /*把函数getr(char *c1)中得到的临时数组中的变量赋给*c2*/     
        {
            i++;
        }      
        for(j=0;j<i;j++)      
        {
            temp[i-j-1]=*(c2+j);/*把*c2中的字符串赋给新的临时数组*/
        }      
        for(k=0;k<i;k++) /*实现倒置*/     
        {
            *(c2+k)=temp[k];
        }      
    }   

    *1.对如何倒置还不是很熟;

      2.在复杂的转换过程中可以定义一个新的临时数组;

      3.临时数组在两个函数之间不能通用。

  • 相关阅读:
    团队项目成员和题目
    最大联通子数组
    站立会议5
    关于jsp之间href传参(中文)乱码问题
    站立会议4
    典型用户和用户场景描述
    站立会议3
    站立会议2
    站立会议1
    第七周学习进度情况
  • 原文地址:https://www.cnblogs.com/xym0914/p/3422694.html
Copyright © 2020-2023  润新知