itoa()
は、数値を文字列に変換する非常に便利な関数です。 Linux には がないようですがitoa()
、同等の関数があるのでしょうか、それとも を使用する必要がありますかsprintf(str, "%d", num)
?
ベストアンサー1
libc
編集: 申し訳ありませんが、このマシンは学術目的でさまざまな非標準実装が組み込まれているため、明らかに非標準であることを覚えておくべきでした;-)
はitoa()
確かに非標準ですが、何人かの親切なコメント投稿者が述べているように、sprintf(target_string,"%d",source_int)
または を使用するのが最善です (バッファ オーバーフローの心配がないので、さらに良い方法です) snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int)
。 ほど簡潔でもクールでもないことは承知していますitoa()
が、少なくとも Write Once, Run Everywhere (tm) は可能です ;-)
これは古い(編集された)回答です
他のいくつかのプラットフォームと同様に、技術的には標準の一部ではないため、デフォルトにはgcc libc
が含まれていないというあなたの意見は正しいです。itoa()
ここもう少し詳しく知りたい場合は、
#include <stdlib.h>
もちろんあなたはすでにこれを知っています。使用 itoa()
おそらく別のプラットフォームで使用した後、Linux で使用していますが、コード (上記のリンクから盗用) は次のようになります。
例
/* itoa example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10);
printf ("decimal: %s\n",buffer);
itoa (i,buffer,16);
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
return 0;
}
出力:
Enter a number: 1750 decimal: 1750 hexadecimal: 6d6 binary: 11011010110