60日間全力プログラミング

プログラミング初心者が二ヶ月間でどこまでいけるかを記録したプログラミング学習ブログ

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;
   
}