前提・実現したいこと
以下の条件に従い、入力された文字列を暗号化するというプログラムが分かりません。
英大文字は,アルファベット順で次の文字(Zの次はAとする)にし英小文字に変換する.(例)A → b,F → g,Z → a 英小文字は,アルファベット順で前の文字(aの前はzとする)にし英大文字に変換する.(例)a → Z,k → J,z → Y 記号(英字以外)は変換しない.
入力される文字列は,文字数が512文字以下で,改行コードを含まないとする(スペース,タブは含まれることがある).
fgetsを使ったのですが、文字列が永遠に入力できるようになってしまいます。
ご回答よろしくおねがいします。
該当のソースコード
c
1#include<stdio.h> 2#define NUM 512 3 4int main(void) 5{ 6 int i; 7 char str[NUM]; 8 for (i=0; i<NUM; i++) { 9 if(fgets(str, NUM, stdin) == NULL) 10 break; 11 } 12 13 for (i=0; i<NUM; i++) { 14 if ( 65 <= str[i] && str[i] < 90) 15 str[i] = str[i] + 33; 16 else if ( 97 < str[i] && str[i] <= 122) 17 str[i] = str[i] - 33; 18 else if (str[i] = 90) 19 str[i] = str[i] + 7; 20 else if (str[i] = 97) 21 str[i] = str[i] - 7; 22 } 23 24 printf("%s", str[i]); 25 26} 27 28
試したこと
NULLの部分をなくし、fgetsだけにもしてみたのですが、結果が出ませんでした。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。