ページ 1 / 1
文字列から数値への変換して、5 進数から 10 進数に変 換する。
Posted: 2019年10月31日(木) 15:13
by kingyoshi
c言語の課題である 5 進数の数字が A-E のアルファベットを用いた文字列で表現(A=0、B=1、C=2、D=3、E=4)されるとする。文字列として入力を受け付け、5 進数から 10 進数に変換せよと出たのですが文字列を数値に変換する段階でつまづいています。どなたか助けてください。また、文字列から数値への変換はユーザー関数で行うことするみたいです。OSはLinaxでコンパイラはC++です。
コード:
#include <stdio.h>
#include<stdlib.h>
int man(){
char m[6]={'0','1','2','3','4'};
int su;
printf("文字列1を入力してください。 \n");
scanf("%d",m);
su=atoi(m)
printf("%d",su);
return 0;
}
Re: 文字列から数値への変換して、5 進数から 10 進数に変 換する。
Posted: 2019年10月31日(木) 19:49
by あたっしゅ
文字列から一文字を取り出すことは、できますか ?
Re: 文字列から数値への変換して、5 進数から 10 進数に変 換する。
Posted: 2019年11月03日(日) 09:05
by box
不正な文字を入力したときなどのエラー処理はしていません。
ご自由に改変してください。
コード:
#include <stdio.h>
int QuinaryToDecimal(char *s)
{
int n, i, j;
char t[] = "ABCDE";
for (n = i = 0; s[i]; i++) {
for (j = 0; j < 5; j++) {
if (s[i] == t[j]) {
n = 5 * n + j;
}
}
}
return n;
}
int main(void)
{
char s[10];
printf("5進数の文字列を入力(A:0, B;1, C:2, D:3, E:4)\n");
scanf("%s", s);
printf("%d\n", QuinaryToDecimal(s));
return 0;
}