zoukankan      html  css  js  c++  java
  • 字符串逆序打印

    版本1 两个指针从头到尾和从尾到头交换内容逆序

    /***
    str_reverse.c
    ***/
    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
        char buf[] = "abcdrfg";
    
        int len = strlen(buf);
        char *p1 = buf;
        char *p2 = buf + len - 1;
    
        while(p1 < p2)
        {
            char c = *p1;
            *p1 = *p2;
            *p2 = c;
            ++p1;
            --p2;
        }
    
        printf("buf = %s
    ",buf);
        return 0; 
    }

    版本2

    使用函数接口封装

    /***
    str_reverse.c
    ***/
    
    #include<stdio.h>
    #include<string.h>
    
    int my_reverse(char *str)
    {
        int iRet = -1;
        if(NULL == str)
        {
            return iRet;    
        }
       
        char *buf = str;
        int len = strlen(buf);
        char *p1 = buf;
        char *p2 = buf + len - 1;
    
        while(p1 < p2)
        {
            char c = *p1;
            *p1 = *p2;
            *p2 = c;
            ++p1;
            --p2;
        }
    
    }
    
    int main()
    {
        char buf[] = "abcdrfg";
        my_reverse(buf);
    
        printf("buf = %s
    ",buf);
        return 0; 
    }

    版本三

    使用栈特性将字符串存储到全局变量中

    /***
    str_reverse.c
    ***/
    
    #include<stdio.h>
    #include<string.h>
    
    char g_buf[256];
    
    void reverse(char *p)
    {
        if(NULL == p)
        {
            return ;
        }
        if(*p == '')
        {
            return;
        }
    
        reverse(p+1);
        strncat(g_buf,p,1);
    }
    
    int main()
    {
        char buf[] = "abcd";
        memset(g_buf,0,sizeof(g_buf));
        reverse(buf);
        printf("g_buf = %s
    ",g_buf);
        return 0;
    }

    版本4

    使用栈将字符串存到传入的局部变量中

    /***
    str_reverse.c
    ***/
    
    #include<stdio.h>
    #include<string.h>
    
    char g_buf[256];
    
    void reverse(char *p)
    {
        if(NULL == p)
        {
            return ;
        }
        if(*p == '')
        {
            return;
        }
    
        reverse(p+1);
        strncat(g_buf,p,1);
    }
    
    int main()
    {
        char buf[] = "abcd";
        memset(g_buf,0,sizeof(g_buf));
        reverse(buf);
        printf("g_buf = %s
    ",g_buf);
        return 0;
    }
  • 相关阅读:
    兼容Linux和Windows下获取视频截图
    webSocket通信
    解决IE浏览器弹出下载框的问题
    jsp的九大内置对象和四大作用域(转)
    如何确定神经网络的层数和隐藏层神经元数量
    Mac 修改系统默认Java版本
    Weka的使用
    在Mac OS系统中安装oracle
    P & NP & NPC & NP-HARD
    Dynamic programming——自下而上 VS. 自上而下
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11604871.html
Copyright © 2011-2022 走看看