天天看點

請編寫一個C函數,将一個字元串逆序

目前有兩種思路,一個是申請一片輔助空間,然後将原字元串逆向拷貝到輔助空間,然後輸出;另一種是原地逆序,不需要額外的輔助空間,方法就是字元串首尾交換。

#include <stdio.h>
#include <string.h>

char* str_reverse(char* str)
{
    int n = strlen(str) / 2;
    int i = 0;
    char tmp = 0;
    
    for(i = 0; i < n; i++)
    {
        tmp  = str[i];
        str[i] = str[strlen(str)-i-1];
        str[strlen(str)-i-1] = tmp;
    }

    return str;
}

int main()
{
    char s[] = "hello world!";

    printf("str_reverse(s) = %s\n", str_reverse(s));

    return 0;
}           

繼續閱讀