ID非公開
ID非公開さん
2020/4/28 16:55
1回答
シーザー暗号の複合かのプログラムを作ったのですがzの次をaに戻りません。zの次aに戻る処理を加えたいのですが教えてください。プログラムは次に示します。
シーザー暗号の複合かのプログラムを作ったのですがzの次をaに戻りません。zの次aに戻る処理を加えたいのですが教えてください。プログラムは次に示します。 #include <stdio.h> #define LEN 255 int main(void) { char string[LEN]; char angou[LEN]; int key, number, i,j; printf("鍵を入力してくだい:"); scanf("%d", &key); printf("文字列を入力してください:"); scanf("%s", string); i = 0; while(string[i] != '\0'){ angou[i] = string[i] - key; i++; } angou[i] = '\0'; printf("暗号の解読結果(平文):%s\n", angou); }
C言語関連・29閲覧・50
ベストアンサー
小文字だけでいいなら、 while(string[i] != '\0'){ angou[i] = string[i] - key; if (angou[i] < 'a') angou[i] += 26; else if (angou[i] > 'z') angou[i] -= 26; i++; }
質問者からのお礼コメント
ありがとうございます
お礼日時:2020/5/3 0:17