假设我有一个用C写的多位整数,我想把它分成几个一位的整数。
123
会变成1
、2
和3
。
我如何做到这一点,特别是当我不知道整数有多少位的时候?
发布于 2012-02-16 06:52:03
int value = 123;
while (value > 0) {
int digit = value % 10;
// do something with digit
value /= 10;
}
发布于 2012-02-16 06:55:07
首先,计算数字:
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;
}
发布于 2012-02-16 06:51:38
作为提示,获得数字中的第n位非常简单;除以10n次,然后mod 10,或C:
int nthdig(int n, int k){
while(n--)
k/=10;
return k%10;
}
https://stackoverflow.com/questions/9302681
复制相似问题