C言語のポインタを使用して文字列を逆順にの方法

ポインタを使って文字列を反転させる機能がC言語にあります。例を以下に示します。

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

void reverseString(char *str) {
    int length = strlen(str);
    char *start = str; // 指向字符串的起始位置
    char *end = str + length - 1; // 指向字符串的结束位置

    // 交换起始位置和结束位置的字符,并同时向中间移动指针
    while (start < end) {
        char temp = *start;
        *start = *end;
        *end = temp;

        start++;
        end--;
    }
}

int main() {
    char str[] = "Hello, World!";
    printf("Original string: %s\n", str);

    reverseString(str);
    printf("Reversed string: %s\n", str);

    return 0;
}

実行結果:

Original string: Hello, World!
Reversed string: !dlroW ,olleH

上記のコードで、reverseString関数は文字列へのポインタを受け取り、2つのポインタstartとendを使用して、文字列内で対応する位置の文字を入れ替えます。startは初期状態では文字列の先頭に、endは末尾を指します。そして、startポインタを右に1つ進め、endポインタを左に1つ戻し、ポインタが指す文字を入れ替えます。これをstartとendポインタが一致するまで繰り返します。最後に、文字列の文字は逆に並びます。

bannerAds