转换一个整数到一个数组 [英] convert an integer number into an array

查看:123
本文介绍了转换一个整数到一个数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想一个整数转换用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆