実行例
./a.out
Input Wareki: H29
Year: 2017
% ./a.out
Input Wareki: S52
Year: 1977
% ./a.out
Input Wareki: M21
Year: 1888
文字列をintがたの整数にして返す関数はできているのですがint main()の途中から話kらなくなってしまったので、教えてくださいお願いします。
条件は次のようになってます。
標準入力から和暦で H29(平成29年の場合)などと入力すると、それが西暦何年かを計算して表示するプログラムを作成しなさい。 入力は1文字目がアルファベットで H, S, T, M がそれぞれ平成、昭和、大正、明治を表しており、数字との間にスペースなどの区切りは無いため、ひと続きの文字列として読み込む。 文字列から数値への変換には問題1で作成した関数 myatoi をそのままコピーして使用し、main関数のみを新たに作成すること。
#include <stdio.h>
int myatoi(char *);
int main()
{
int a,i;
char w[50];
printf("Input Wareki: ");
scanf("%49s",w);
a=myatoi(w);
return 0;
}
int myatoi(char *p)
{
int sign = 1;
int ret = 0;
/* スペースを読み飛ばす */
while (*p == ' ') p++;
/* 「-」「+」の処理 */
if (*p == '-') {
sign = -1;
p++;
} else if (*p == '+') {
p++;
}
/* 数字の読み取り */
for (;*p != '\0';p++) {
if (*p>='0' && *p<='9') {
ret *= 10;
ret += *p - '0';
} else {
break;
}
}
return ret * sign;
}