文字列から数値への変換して、5 進数から 10 進数に変 換する。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kingyoshi
記事: 1
登録日時: 4年前

文字列から数値への変換して、5 進数から 10 進数に変 換する。

#1

投稿記事 by kingyoshi » 4年前

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

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 文字列から数値への変換して、5 進数から 10 進数に変 換する。

#2

投稿記事 by あたっしゅ » 4年前

文字列から一文字を取り出すことは、できますか ?
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

box
記事: 2002
登録日時: 13年前

Re: 文字列から数値への変換して、5 進数から 10 進数に変 換する。

#3

投稿記事 by box » 4年前

不正な文字を入力したときなどのエラー処理はしていません。
ご自由に改変してください。

コード:

#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;
}
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

返信

“C言語何でも質問掲示板” へ戻る