zoukankan      html  css  js  c++  java
  • 字符串逆序-c语言

    给定一个含有n个元素的字符串,实现逆序。

    这是个很基础的问题,实现方式也是很常见的c语言思路。虽然简单,但是仍然记录下来。

    [期望]

    比如char str[] = "abcdefg";

    逆序后为:"gfedcba";

    [思路]
    分别从字符串的头和尾部向中间进发,依次交换头尾的值,直到在中间相遇。


    代码:

    #include <stdio.h>
    #include <string.h>
    
    void print_str(char *str)
    {
        int i,len;
        if (str == NULL) {
            return;
        }
        len = strlen(str);
        for(i=0; i<len; i++) {
            printf("%c",str[i]);
        }
        printf("
    ");
    }
    
    void str_reverse(char *str, int left, int right)
    {
        char tmp;
        while(left < right) {
            tmp = str[left];
            str[left++] = str[right];
            str[right--] = tmp;
        }   
    }
    
    void str_reverse_test()
    {
        char str[] = "abcdefg";
        str_reverse_1(str, 0, strlen(str)-1);
        print_str(str);
    }
    
    void main()
    {
        str_reverse_test();
    }
    View Code


    至于函数原型为什么不定义成void str_rev(char *str);或者void str_rev(char *str, int len);,
    而是定义成void str_rev(char *str, int left, int right); 后面的文章会解释,也会用到它。

  • 相关阅读:
    NACBD
    周总结7
    周总结6
    团队题目——TD课程通
    移动端疫情展示
    周总结5
    每周总结4
    每周总结3
    每周总结2
    求最大子数组
  • 原文地址:https://www.cnblogs.com/bugchecker/p/3618384.html
Copyright © 2011-2022 走看看