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;
    }
  • 相关阅读:
    swift 函数
    Javascript中的apply与call详解
    SQL语句中----删除表数据drop、truncate和delete的用法
    jquery对象和DOM对象转换
    js正则函数match、exec、test、search、replace、split使用介绍集合
    JS中类或对象的定义说明
    SQL PROMPT5.3.4.1的一些设置选项
    jQuery 遍历函数
    前端开发面试题
    SQLServer中ISNULL和CONVERT函数
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11604871.html
Copyright © 2011-2022 走看看