如何将整数转换为C中的数字数组?
例如:
我有一个整数:int a=12345;
我想要一个包含其数字的数组:
int arrayofdigits={1,2,3,4,5};
答案 0 :(得分:3)
我们如何提供这个想法,你编写代码?听起来不错?
%
]运算符取出最后一位数字。存储在数组中。最后,一旦你完成了,如果你已经直接存储,你需要反转数组内容以获得与数字中出现的数字相同的数字。
答案 1 :(得分:0)
您可以使用x % 10
获取x
的单位(最右侧)数字。每个数字都可以放入一个数组中。
您可以使用x = x / 10
将x
除以10,有效地将所有数字右移。
当x
转移到等于零的点时,您可以检测到您的数字是否已用完。
你可以。如果你需要正确的顺序,可以从边缘移动直到你在中间穿过来交换它们。
所以这种野兽的伪代码是:
def digits[10]
def x = 12345
def pos = 0
while x != 0:
digits[pos] = x % 10
pos = pos + 1
x = x / 10
def left = 0
def right = pos - 1
while left < right:
temp = digits[left]
digits[left] = digits[right]
digits[right] = temp
left = left + 1
right = right - 1
# Now digits[0..(right-1)] holds the digits.
答案 2 :(得分:0)
您可以参考以下程序。
我能想到的最简单的是:
int main(void)
{
int a=12345;
char c[10] = {0}; /*c is array if characters to hold the digits*/
sprintf(c, "%d", a);
printf("Int : %d, array of digits: %s\n", a, c);
/*To print each digit one by one*/
a = 0;
while (c[a] != '\0')
printf("%c\n",c[a++]);
return 0;
}