C言語で文字列を逆順にするにはどうすればよいですか?

文字列を逆順にするには次の手法を用いることができる

  1. ループを使って、文字列の後ろから順番に文字を走査し、その文字を新しい文字列に連結します。
#include <stdio.h>
#include <string.h>

void reverseString(char* str) {
    int len = strlen(str);
    char reversed[len+1];
    int i, j = 0;
    
    for (i = len - 1; i >= 0; i--) {
        reversed[j++] = str[i];
    }
    reversed[j] = '\0';
    
    printf("Reversed string: %s\n", reversed);
}

int main() {
    char str[] = "Hello World";
    reverseString(str);
    return 0;
}

逆文字列は、dlroW olleH です。

  1. 文字列の先頭と末尾を指す二つのポインタを用い、ポインタが指す文字を入れ替えることで文字列の反転を実現
#include <stdio.h>
#include <string.h>

void reverseString(char* str) {
    int len = strlen(str);
    int i, j = len - 1;
    
    for (i = 0; i < j; i++, j--) {
        char temp = str[i];
        str[i] = str[j];
        str[j] = temp;
    }
    
    printf("Reversed string: %s\n", str);
}

int main() {
    char str[] = "Hello World";
    reverseString(str);
    return 0;
}

逆文字列:dlroW olleH

bannerAds