zoukankan      html  css  js  c++  java
  • C语言实现字符串逆序输出

     
    方法一:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    void Reverse(char str[]);
    int main()
    {
        char str[100];
        printf("Input a string:");
        gets(str);
        Reverse(str);
        printf("Inversed results:%s
    ",str);
    }
    void Reverse(char str[]){
        int n=strlen(str);
        int i;
        char temp;
        for(i=0;i<(n/2);i++){
            temp=str[i];
            str[i]=str[n-i-1];
            str[n-i-1]=temp;
        }
    }
    //思路:通过将str数组的第1个字符和第n个字符交换位置,第二个和第n-1个交换…实现该功能

    方法二:


    #include <stdio.h> #include <stdlib.h> #include <string.h> void Reverse(char str[], char ptr[]); int main() { char str[100]; char ptr[100]; printf("Input a string:"); gets(str); Reverse(str,ptr); printf("Inversed results:%s ",ptr); } void Reverse(char str[], char ptr[]){ int n=strlen(str); int i; for(i=0;i<=n;i++){ ptr[i]=str[n-i-1]; } ptr[i-1]=''; } //思路:通过倒着遍历数组str,并把遍历结果存入ptr从而实现改功能

    另外有一种不用新变量的方法:

    char *reverse(char *str)
    {
        if(str==nullptr)
            return nullptr;
        int len=strlen(str);
        int i=0;
        while(i<len-i-1){
            str[i]=str[i]^str[len-i-1];
            str[len-i-1]=str[i]^str[len-i-1];
            str[i]=str[i]^str[len-i-1];        
            i++;
        };
        return str;
    
    }

    参考:https://blog.csdn.net/m0_37888031/article/details/77896594 

  • 相关阅读:
    memset 还可以这样用
    搜索(DFS)
    搜索(BFS)
    最大流之sap算法
    最大流之sap算法
    String VS Cstring(字符串)
    String VS Cstring(字符串)
    Set 与 Multiset
    deque(双端队列)
    枚举 TODO
  • 原文地址:https://www.cnblogs.com/nanqiang/p/9952713.html
Copyright © 2011-2022 走看看