8進数表記の文字列を数値に変換する
C言語ケーススタディ

Study C Ver2販売開始のお知らせ

 C言語の勉強や教育用に最適です。
 2004/8/23よりStudy C Ver2の販売を開始しました。
 Study C Ver2の新しい機能については
 こちらをご参照ください。

2進数表記の文字列を数値に変換するプログラムを改造し8進数表記の文字列を変換するようにします。
8進数表記の文字列から数値への変換もstrtol、scanf関数などで行うことができるので、実用的にはあまり意味のないプログラムです。

主な改造のポイントは次のようになります。
・関数名をbinvalからoctvalに変更
・ループ内の2を掛けている所を8に変更
・文字列の最大サイズを11桁に変更


unsigned int
	octval(char *str);

main(int argc, char *argv[])
{
        if(argc != 2){
                printf("コマンドの入力形式が間違っています.\n");        
                return;
        }
	printf("%o\n", octval(argv[1]));
}


unsigned int
	octval(char *str)
{
	unsigned long
		num;
	int	i1, ch;

	num = 0L;
	for(i1 = 0; ; i1++){
		if(str[i1] >= '0' && str[i1] <= '7'){
			ch = str[i1] - '0';
		}
		else if(str[i1] == '\0'){
			break;
		}
		else{
			printf("変換エラー\n");
			num = 0xFFFFFFFF;
			break;
		}
		num *= 8;
		num += ch;
		if(i1 >= 11){
			printf("値がオーバーしました\n");
			num = 0xFFFFFFFF;
			break;
		}
	}
	return(num);
}
Study Cにロードする Study Cにロードし編集する ブラウザとの連携機能が使用可能なStudy Cのバージョンなどについて... 「run 377」のように実行する必要があるので実行ボタンはありません

C言語でゲームプログラマーを目指す方へ
 ■C言語ゲームプログラミング講座
 C言語でのゲームプログラミングを解説する講座
 始めました。

お問い合わせ先 C言語のトップページに戻る Copyright(C) 2003 潟Iーキッド