藤原様
回答有難う御座いました。
教えていただいた関数を作成していれた所うまく動きました。
(sprintfではないほう)
自分が思っていたとおりの結果が出ました。
有難う御座いました。
その他回答いただいた皆様有難う御座いました。
これからも宜しくです。
----- Original Message -----
From: "FUJIHARA Keiichi" <keiichi@xxxxxxxxxxxxx>
To: <h8@xxxxxxx>
Sent: Monday, August 12, 2002 9:27 AM
Subject: [H8-ML(2137)] Re: 型変換に関して
> 藤原と申します。
>
> This message is reply to siro - san
> (Subject was : [H8-ML(2132)] 型変換に関して)
>
> Message-ID: <005301c2415e$4c9faf60$0200a8c0@sirobd009wepk7>
> in Mon, 12 Aug 2002 02:41:17 +0900 ...
>
> > int型からchar型に変換する方法が判りません。
> > たとえばintの123を文字型の123に変換する方法です。
> > 関数でintTostrのような関数が有ればと思いヘッダーを見て見たのです
が
> > 無いようでした。
>
> これは、int -> char への変換ではなくて、数値を文字列(だったら、
> char の配列ですね)に変換すると言うことでしょうか?
>
> 普通の(パソコンレベルの)C言語であれば、sprintf を使うのが普通です。
> たとえば、
>
> char buff[16];
> int i = 123;
> sprintf(buff, "%d", i);
>
> で、buff の先頭から、"123" が格納されます。
> メモリ etc. に余裕があれば、この方法が楽で、柔軟性もあります。
>
> ただし、sprintf に限らず、printf 系の関数はメモリを大量に消費する
> ので(ちなみに、組込用のコンパイラだと、標準的な IO がないので、
> printf が提供されないことも多いのですが、sprintf は大抵あります)
> 使えない場合が多いのですが。
>
> sprinf が使えない場合は、自作しましょう。
>
> void toStr(int dat, char *ptr, int keta)
> {
> int i;
>
> for (i = 0; i < keta; i++)
> {
> ptr[keta - i - 1] = (dat % 10) + '0';
> dat /= 10;
> }
>
> /* 先行する0をスペースに置き換える */
> for (i = 0; ptr[i] == '0' && i < keta - 1; i++)
> ptr[i] = ' ';
>
> }
>
> char buff[16];
> int i = 123;
>
> toStr(i, &buff[0], 4);
>
> とすると、4桁で、buff[0] から、" 123" という文字列に変換されます。
>
> --
> _/ -- Last 17585 hours until ATHENS 2004 Olympic Games (12 Aug @047) -
> _/ FUJIHARA Keiichi
> _/ E-Mail : keiichi@xxxxxxxxxxxxx <or> nagi@xxxxxxxxxxxxxxx
> _/ URL : http://www.keiichi.fujihara.name/
> --------------------------------------------+----- Luna Phase 3.66 --
> PGP FingerPrint = 7CC3 4F95 8CC7 87D3 7178 C348 CD65 7F08 D68F 69F6
>
>