R46 1,00 小文字を大文字にする方法
考察
だんだんと格納の意味がわかってきた!
out_mojiretu[i]= oomoji[j]; あ出力文字列に大文字を格納するという意味だけど、要するにもっと簡単に言うと、
大文字を出力文字列で使いますよー(右から左へ)ってこと。難しい言葉使いすぎ!
gets(in_mojiretu);このgetsを使うことで、スペースが必要な文(ex. This is a pen!)とかも表せるようになる。
問題
英字(小文字)文字列を入力し、大文字に変換する。
表示例
-------------------英字の変換-------------------
英文(小文字で)入力してください。
in the top of the mountain, you will see the birds.
------------------変換後の文字列----------------
IN THE TOP OF THE MOUNTAIN, YOU WILL SEE THE BIRDS.
------------------------------------------------
考え方
(1)英字小文字用テーブルと大文字用テーブルを準備する。
(2)入力文字列にスペースが含まれるのでscanf関数ではなくgets関数を使用する。
(3)検索および変換
①入力文字列の0文字目から文字列が終わり('\0')になるまで検索する。
②小文字用テーブルの0文字目から25文字目までと比較する。
③文字が一致したら、大文字用テーブルの1文字を出力用文字列に格納する。
④英字小文字以外は変換せずそのまま出力する。
⑤出力用文字列の最後には文字列の終わりを示す'\0'を格納する。
#include
int main(void){
int i,j;
char in_mojiretu[81],out_mojiretu[81];
char komoji = "abcdefghijklmnopqrstuvwxyz";
char oomoji = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("-------------英字の変換--------------\n");
printf("英文(小文字で)入力してください。\n");
gets(in_mojiretu);
for (i=0; in_mojiretu[i]!='\0'; i++) {
out_mojiretu[i]=in_mojiretu[i];
for (j=0; j<26; j++) {
if (in_mojiretu[i]==komoji[j]) {
out_mojiretu[i]=oomoji[j];
break;
}
}
}
out_mojiretu[i]='\0';
printf("-------------変換後の文字列--------------\n");
printf("\n");
printf("%s\n",out_mojiretu);
printf("\n");
printf("---------------------------------------\n");
return 0;
int main(void){
int i,j;
char in_mojiretu[81],out_mojiretu[81];
char komoji = "abcdefghijklmnopqrstuvwxyz";
char oomoji = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("-------------英字の変換--------------\n");
printf("英文(小文字で)入力してください。\n");
gets(in_mojiretu);
for (i=0; in_mojiretu[i]!='\0'; i++) {
out_mojiretu[i]=in_mojiretu[i];
for (j=0; j<26; j++) {
if (in_mojiretu[i]==komoji[j]) {
out_mojiretu[i]=oomoji[j];
break;
}
}
}
out_mojiretu[i]='\0';
printf("-------------変換後の文字列--------------\n");
printf("\n");
printf("%s\n",out_mojiretu);
printf("\n");
printf("---------------------------------------\n");
return 0;
}