文字列を逆順にする方法C言語

ループを使って文字列を逆にできます。

具体的な手順は次のとおりです。

  1. 文字列の長さを計算する。
  2. ポインタが2つ必要で、1つは文字列の先頭、もう1つは末尾を指します。
  3. 互いに合流する前、二つの指し示す文字を入れ替え、その指し示すものを互いに1つずらしながら中心に近づける。
  4. ポインタが合流するまで文字列を逆順に並べる。

サンプルコードを以下に示します。

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

void reverse_string(char *str) {
    int len = strlen(str);
    char *start = str;
    char *end = str + len - 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);

    reverse_string(str);

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

    return 0;
}

実行結果:

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