助けてください。
C言語の勉強をしているのですがうまくいきません。
助けてください。
氏名、誕生日、血液型を入力し表示する関数を作りたいです。
形としては、氏名を入力し、誕生日を入力したあとに血液型を入力する関数ですが、血液型入力を下の表を表示して選択式にしたいのです。
---------------------------
番号を入力してください
1;A 2;B 3;O 4;AB 5;?
---------------------------
ここで仮に1を入力します。
最終的に入力したものが
--------------------
名前:taro
誕生日:19830917
血液型:A
--------------------
と表示されるようにしたいです。
そのための関数を作ったのですが、うまく作動しません。
どこがおかしいか教えてください。
関数はこれです。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void)
{
char Buff[20];
char Buff2[9];
char Buff3[5];
char Buff4[5];
int i;
char BLOODNAME[5][4] = {"A","B","O","AB","?"};
printf("名前:");
fgets(Buff,20,stdin);
printf("生年月日:");
fgets(Buff2,9,stdin);
i = atoi(Buff2);
printf("血液型を選べ\n");
printf("------------------------------------\n");
printf("1;A 2;B 3;O 4:AB 5;?\n");
printf("------------------------------------\n");
fgets(Buff3,5,stdin);
if(strlen(Buff3) == 1)
{
switch(Buff3[0])
{
case 1:
strcpy(Buff4,BLOODNAME[0]);
break;
case 2:
strcpy(Buff4,BLOODNAME[1]);
break;
case 3:
strcpy(Buff4,BLOODNAME[2]);
break;
case 4:
strcpy(Buff4,BLOODNAME[3]);
break;
case 5:
strcpy(Buff4,BLOODNAME[4]);
break;
default:
printf("強制終了ver1\n");
return 0;
}
}
else
{
printf("強制終了ver2\n");
return 0;
}
printf("----------------------------------------\n");
printf("名前:%s\n",Buff);
printf("生年月日:%d\n",i);
printf("血液型:%s\n",Buff4);
printf("----------------------------------------\n");
return 0;
}
あと誕生日なのですが今は入力したものがそのまま出力されますが、最終的には○○○○年○○月○○日と表示されるようにしたいのですが、上の関数にどう追加すればいいのかも教えてください。
お願いいたします・
補足
ありがとうございます。 私自身かなり整理できていない部分がありましたので、大変参考になります。