1. ホーム
  2. c

[解決済み] C言語で整数を文字列に変換する方法は?[重複しています]

2022-04-22 22:20:41

質問

この例を試してみました。

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

が、その例ではうまくいきません(それは、関数 itoa が存在しない)。

解決方法は?

使用方法 sprintf() :

int someInt = 368;
char str[12];
sprintf(str, "%d", someInt);

で表現可能なすべての数値は int はオーバーフローせずに12文字配列に収まりますが、コンパイラが何らかの方法で int . より大きなビットサイズの数値を使用する場合、例えば long 64ビットコンパイラの場合、配列のサイズを大きくする必要があります(64ビットタイプでは最低21文字)。