入力された文字列を,1文字ずつ以下のルールに従って暗号化して画面に表示するプログラムを作成せしよとしました.
英大文字は,アルファベット順で次の文字(Zの次はAとする)にし英小文字に変換する.(例)A → b,F → g,Z → a
英小文字は,アルファベット順で前の文字(aの前はzとする)にし英大文字に変換する.(例)a → Z,k → J,z → Y
数字は,1文字ずつ10の補数に変換せよ.ただし0 は 0 のままとする.(例)9 → 1,3 → 7
記号(英数字以外)は変換しない.
入力される文字列は,文字数が512文字以下で,改行コードを含まないとし、(スペース,タブは含まれることがある)
一文字だけ入力すると、答えが表示できるようになりましたが、複数文字を入力できるようにする方法がわかりません。助けてください!
スペースで区切られてなければ、できるようになりました。しかし、スペースで区切られると、スペースの前まではできるんですけど、そっから先は表示されません。どうすればいいのでしょうか
c
1#include <stdio.h> 2#include <string.h> 3 4//大文字を小文字に変換 \ 5 6char tolowr(char c) 7{ 8 return (c + 0x21); 9} 10 11/* 小文字を大文字に変換 */ 12char toupr(char c) 13{ 14 return (c - 0x1f); 15} 16 17int main(void) 18{ 19 char ci, co, Co; /* ci : 入力文字 / co : 出力文字 */ 20 int i; 21 22 // printf("Input Charactor : "); \ 23 24 scanf("%c", &ci); 25 26 /* アルファベットか数字かを判定 */ 27 if( (ci>='a'&& ci<='z') || (ci>='A' && ci<='Z')){ 28 // printf("入力した文字「%c」はアルファベット\n", ci); \ 29 30 if (ci>='A' && ci<='Y'){ 31 co = tolowr(ci); 32 printf("%c\n", co); 33 } 34 35 if (ci == 'Z'){ 36 printf("a\n"); 37 } 38 39 if(ci>='a'&& ci<='y'){ 40 Co = toupr(ci); 41 printf("%c\n", Co); 42 } 43 44 if(ci == 'z'){ 45 printf("A\n"); 46 } 47 } 48 49 else if(ci > '0'&& ci<='9'){ 50 /* printf("入力した文字「%c」は数字です。\n", ci);*/ \ 51 ci = 10 - ci; 52 printf("%c\n", ci ); 53 } 54 else if(ci == '0'){ 55 printf("%c\n", ci); 56 } 57 else 58 printf("「%c」はアルファベットでも数字でもありません。\n", ci); 59 60 return 0; 61}
c
1 2#include <stdio.h> 3#include <string.h> 4 5//大文字を小文字に変換 \ 6\ 7 \ 8 9char tolowr(char c) 10{ 11 return (c + 0x21); 12} 13 14/* 小文字を大文字に変換 */ 15char toupr(char c) 16{ 17 return (c - 0x21); 18} 19 20int main(void) 21{ 22 char ci[512] = {0}; 23 char co[512] = {0}; 24 char Co[512] = {0}; /* ci : 入力文字 / co : 出力文字 */ 25 int i; 26 27 // printf("Input Charactor : "); \ 28 29 scanf("%s", ci); 30 31 for(i = 0; i < sizeof(ci); i++){ 32 /* アルファベットか数字かを判定 */ 33 if( (ci[i]>='a'&& ci[i]<='z') || (ci[i]>='A' && ci[i]<='Z')){ 34 // printf("入力した文字「%c」はアルファベット\n", ci); \ 35 36 if (ci[i]>='A' && ci[i] <='Y'){ 37 co[i] = tolowr(ci[i]); 38 printf("%c", co[i]); 39 } 40 41 if (ci[i] == 'Z'){ 42 printf("a"); 43 } 44 45 if(ci[i]>='b'&& ci[i]<='z'){ 46 Co[i] = toupr(ci[i]); 47 printf("%c", Co[i]); 48 } 49 50 if(ci[i] == 'a'){ 51 printf("Z"); 52 } 53 } 54 55 else if(ci[i] > '0'&& ci[i] <= '9'){ 56 /* printf("入力した文字「%c」は数字です。\n", ci);*/ \ 57 ci[i] = 10 - ci[i]; 58 printf("%c", ci[i]); 59 } 60 else if(ci[i] == '0'){ 61 printf("%c", ci[i]); 62 } 63 else { 64 printf("%c", ci[i]); 65 } 66 } 67 68 printf("\n"); 69 70 return 0; 71} 72 73 74
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。