[C言語]文字列を逆順に反転!for文やポインタ演算の利用について

[C言語]文字列を逆順に反転させる!for文やポインタ演算の利用についてC言語
広告

C言語においてfor文を使用して文字列を逆順に反転させる方法を学びましょう。

for文はループ処理において汎用的であり文字列の逆順反転にも利用できます。

以下ではその基本的な手法について解説します。

広告

for文で文字列を逆順に反転させる

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

void reverseString(char *str) {
    int length = strlen(str);
    
    for (int i = 0; i < length / 2; i++) {
        char temp = str[i];
        str[i] = str[length - 1 - i];
        str[length - 1 - i] = temp;
    }
}

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

    reverseString(myString);

    printf("Reversed String: %s\n", myString);

    return 0;
}

このプログラムではfor文を使用して文字列を逆順に反転しています。

reverseString 関数内のforループでは文字列の先頭から中央までを順に交換していきます。

ポインタ演算で文字列を逆順に反転させる

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

void reverseString(char *str) {
    char *start = str;
    char *end = str + strlen(str) - 1;

    while (start < end) {
        char temp = *start;
        *start = *end;
        *end = temp;

        start++;
        end--;
    }
}

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

    reverseString(myString);

    printf("Reversed String: %s\n", myString);

    return 0;
}

このプログラムでは、reverseString 関数内でポインタ演算を使用しています。

start ポインタと end ポインタを用いて、文字列の先頭から末尾に向かってポインタを進めながら文字を交換しています。

広告

まとめ

まとめ

for文やポインタ演算子を使用することで文字列の逆順反転を実現できます。

for文を利用した方法は直感的で理解しやすく、基本的なプログラミング技術の一環として覚えておくと良いでしょう。

タイトルとURLをコピーしました