整数をCの文字配列に変換したい。
入力:
int num = 221234;
結果は次のようになります。
char arr[6];
arr[0] = '2';
arr[1] = '2';
arr[2] = '1';
arr[3] = '2';
arr[4] = '3';
arr[5] = '4';
これどうやってするの?
整数をCの文字配列に変換したい。
入力:
int num = 221234;
結果は次のようになります。
char arr[6];
arr[0] = '2';
arr[1] = '2';
arr[2] = '1';
arr[3] = '2';
arr[4] = '3';
arr[5] = '4';
これどうやってするの?
この関数を使用してlog10
桁数を決定し、次のようにします。
char * toArray(int number)
{
int n = log10(number) + 1;
int i;
char *numberArray = calloc(n, sizeof(char));
for (i = n-1; i >= 0; --i, number /= 10)
{
numberArray[i] = (number % 10) + '0';
}
return numberArray;
}
または他のオプションはsprintf(yourCharArray,"%ld", intNumber);
' sprintf 'は正常に機能します。最初の引数が文字へのポインターである場合(文字へのポインターは'c'の配列です)、すべての数字と終了に十分なスペースがあることを確認する必要があります。 '\0'。たとえば、整数が32ビットを使用する場合、最大10桁の10進数になります。したがって、コードは次のようになります。
int i;
char s[11];
...
sprintf(s,"%ld", i);
簡単な方法は、を使用することですsprintf
。他の人が提案していることは知っていますがitoa
、a)標準ライブラリの一部ではなく、b)そうでない sprintf
フォーマットオプションを提供します。itoa
ここに示すように、itoaを使用します。
char buf[5];
// Convert 123 to string [buf]
itoa(123, buf, 10);
buf
文書化したとおり、文字列配列になります。バッファのサイズを増やす必要があるかもしれません。