如何使用C将整数转换为字符数组

时间:2013-01-28 15:02:32

标签: c

我想将整数转换为C中的字符数组。

输入:

int num = 221234;

结果相当于:

char arr[6];
arr[0] = '2';
arr[1] = '2';
arr[2] = '1';
arr[3] = '2';
arr[4] = '3';
arr[5] = '4';

我该怎么做?

5 个答案:

答案 0 :(得分:17)

利用log10功能来确定数字位数&如下所示

char * toArray(int number)
    {
        int n = log10(number) + 1;
        int i;
      char *numberArray = calloc(n, sizeof(char));
        for ( i = 0; i < n; ++i, number /= 10 )
        {
            numberArray[i] = number % 10;
        }
        return numberArray;
    }

或  另一个选项是sprintf(yourCharArray,"%ld", intNumber);

答案 1 :(得分:9)

'sprintf'可以正常工作,如果你的第一个参数是指向一个字符的指针(指向一个字符的指针是'c'中的数组),你必须确保你有足够的空间对于所有数字和终止'\ 0'。 例如,如果整数使用32位,则最多包含10位十进制数。 所以你的代码应该是这样的:

int i;
char s[11]; 
...
sprintf(s,"%ld", i);

答案 2 :(得分:1)

使用itoa,如here所示。

char buf[5];
// convert 123 to string [buf]
itoa(123, buf, 10);

buf将是您记录的字符串数组。您可能需要增加缓冲区的大小。

答案 3 :(得分:1)

easy 方式是使用sprintf。我知道其他人已经建议itoa,但a)它不是标准库的一部分,而b)sprintf为您提供了itoa没有的格式选项。

答案 4 :(得分:0)

您可以尝试使用itoa。另一种方法是使用sprintf