藤原と申します。
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