C 言語で文字列を逆順に格納する方法は何ですか?

文字列を逆順で保存するためには、ループを使用できます。まず、文字列の長さを計算し、その後、元の文字列と同じ長さの新しい文字配列を作成します。次に、ループを使用して、元の文字列を後ろから前に順番に走査し、1つずつ文字を新しい文字配列に割り当てます。最後に、新しい文字配列を出力します。

以下はサンプルコードです。

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

void reverseString(char* str) {
    int len = strlen(str);
    char reverse[len + 1]; // 创建新的字符数组
    int i, j;

    // 逆序赋值给新的字符数组
    for (i = len - 1, j = 0; i >= 0; i--, j++) {
        reverse[j] = str[i];
    }
    reverse[len] = '\0'; // 添加字符串结束符

    printf("逆序字符串: %s\n", reverse);
}

int main() {
    char str[] = "Hello, World!";
    printf("原字符串: %s\n", str);

    reverseString(str);

    return 0;
}

結果出力:

原字符串: Hello, World!
逆序字符串: !dlroW ,olleH
bannerAds