C:如何将一个多位数分解成不同的变量?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我想在C中分解一个数位数,比方说我有一个int 123

我怎么把它分解成1,2,3?

如果我不知道有多少位数呢?

提问于
用户回答回答于
int value = 123;
while (value > 0) {
 int digit = value % 10;
 // do something with digit
 value /= 10;
}
用户回答回答于

首先,数数字:

unsigned int count(unsigned int i) {
 unsigned int ret=1;
 while (i/=10) ret++;
 return ret;
}

然后,可以将它们存储在一个数组中:

unsigned int num=123; //for example
unsigned int dig=count(num);
char arr[dig];
while (dig--) {
 arr[dig]=num%10;
 num/=10;
}

扫码关注云+社区