整数値を整数配列形式に変換するにはどうすればよいですか?例えばcの整数から整数への変換
:私が取得したい
int answer = 140;
と期待値は次のとおりです。
int arr_answer[] = { 1, 4, 0};
整数値を整数配列形式に変換するにはどうすればよいですか?例えばcの整数から整数への変換
:私が取得したい
int answer = 140;
と期待値は次のとおりです。
int arr_answer[] = { 1, 4, 0};
あなたは(この場合は3で)前もっての桁数を知っている場合は、することができますこのようにそれを実行します。
#include <stdio.h>
int main()
{
const int numDigits = 3;
int answer = 140;
int digits[numDigits];
int i = numDigits - 1;
while (answer > 0)
{
int digit = answer % 10;
answer /= 10;
digits[i] = digit;
printf("digits[%d] = %d\n", i, digits[i]);
i--;
}
return 0;
}
出力:
digits[2] = 0
digits[1] = 4
digits[0] = 1
私はCプログラマではないので、特定のコードを与えることはできませんが、文字列変換(Googleはsprintf()を試しています)、2)整数/文字列の長さを配列に代入します。私はこのような何かを終わらせるだろう:
integer_String = convertToString(integer)
for (integer_String.length()) {assign to array}
おそらく、配列を返す関数でそれをまとめていいですか?
編集:他の回答は無視してください。
1つのオプションは、数字をカウントしvariable length array を使用することです:
明らか#include <stdio.h>
int main(void){
int ans = 140;
int x = ans;
size_t i, size = 0;
while (x) {
x=x/10;
size++;
}
int arr_answer[size];
for (i = size - 1, x = ans ; x ; x = x/10, i--) {
arr_answer[i] = x % 10;
}
for (i=0 ; i < size ; i++) {
printf("%d ", arr_answer[i]);
}
}
、あなたは十分に大きい固定サイズの配列を使用することができれば、あなたはsize
ひいてはを計算する必要はありません。最初のループは避けてください。 しかしこれはおそらく正確なサイズの配列を作るための唯一のものです。また、malloc()
(アレイを使用する必要がない場合)を使用して、数字の桁が巨大である場合にはブロックを割り当てることができます(また、別の方法でも格納する必要があります)。int
限られた範囲の値を保持することができます)。
C99以降で使用可能なVLAは、C11のオプション機能です。
「回答」には何桁の数字があるのを前もって知っていますか? – bejado
あなたは、必要な出力 'int arr_answer [] = {1,4,0};'でソースコードを生成したいと言っていますか?具体的にしてください。 –