auの日記

プログラミング初心者の日記。(auはハンドルネームです)

文字を暗号化するプログラム

auです。
今回はアルファベットを入力して、数字を入力するとその分だけ→にずれるプログラムを組みました。

#include <stdio.h>

int main(void) {
    int slide = 0;
    int over = 0;
    char ch[128];
    char word[128];
    char n_word[128];
    char all_word[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

    printf("半角アルファベット: ");
    scanf("%[^\n]", word);

    printf("ずらす文字数: ");
    scanf("%d", &slide);

    for (int i = 0; word[i] != NULL; i++) {
        n_word[i] = word[i];
        for (int j = 0; j < 52; j++) {
            if (n_word[i] == all_word[j]) {
                over = j + slide;
                if (over >= 52) {
                    over -= 52;
                }
                n_word[i] = all_word[over];
                break;
            }
        }
    }

    printf("%s\n", n_word);

    return 0;
}

// 実行結果
半角アルファベット: Hello World!
ずらす文字数: 3
Khoor Zruog!

Zを入力した際にaに戻る処理をしていなくて、少し戸惑いましたがうまく動作することができました。