转换一个整数到一个数组 [英] convert an integer number into an array
本文介绍了转换一个整数到一个数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想一个整数转换用C到含有每这一数字的位数的数组
I am trying to convert an integer number in C into an array containing each of that number's digits
即。如果我有
int number = 5400
我怎样才能到
int numberArray[4]
其中,
numberArray[0] = 0;
numberArray[1] = 0;
numberArray[2] = 4;
numberArray[3] = 5;
任何建议感激地接受
Any suggestions gratefully received
- 戴夫
推荐答案
这将工作数> = 0
This would work for numbers >= 0
#include <math.h>
char * convertNumberIntoArray(unsigned int number) {
int length = (int)floor(log10((float)number)) + 1;
char * arr = new char[length];
int i = 0;
do {
arr[i] = number % 10;
number /= 10;
i++;
} while (number != 0);
return arr;
}
编辑:只是多一点位C的风格,但更神秘的
Just a little bit more C style but more cryptic.
#include <math.h>
char * convertNumberIntoArray(unsigned int number) {
unsigned int length = (int)(log10((float)number)) + 1;
char * arr = (char *) malloc(length * sizeof(char)), * curr = arr;
do {
*curr++ = number % 10;
number /= 10;
} while (number != 0);
return arr;
}
这篇关于转换一个整数到一个数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文