|
>処理方法;1文字づつASCIIコードをそれの示す数に直し、10のべき乗をかけて加える。
べき乗を掛けるとなると、最初に0〜9以外の文字が出てくるまでの文字数
をカウントして、それからべき乗数を決める必要があります。従って以下
のプログラムは題意に沿っていませんが「ホーナー法でやりました」とで
もコメントしておくといいでしょう。
#include <stdio.h>
#include <ctype.h>
int myatoi(char *a);
int main(void)
{
char buf[128];
while (1) {
printf("十進数を入力して下さい: ");
if (scanf("%s", buf)) break;
}
printf("変換の結果: %d\n", myatoi(buf));
return 0;
}
int myatoi(char *a)
{
int i = 0, sign = 1;
while (isspace(*a)) a++;
if (*a == '-') {
sign = -1;
a++;
}
while (*a && isdigit(*a))
i = i * 10 + *a++ - '0';
return sign * i;
}
|