我想在C中将整数转换为字符数组.
输入:
int num = 221234;
Run Code Online (Sandbox Code Playgroud)
结果相当于:
char arr[6];
arr[0] = '2';
arr[1] = '2';
arr[2] = '1';
arr[3] = '2';
arr[4] = '3';
arr[5] = '4';
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
Rav*_*ale 18
利用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;
}
Run Code Online (Sandbox Code Playgroud)
或者另一种选择是 sprintf(yourCharArray,"%ld", intNumber);
小智 10
' sprintf '可以正常工作,如果你的第一个参数是一个指向一个字符的指针(指向一个字符的指针是'c'中的一个数组),你必须确保你有足够的空间容纳所有的数字并终止'\ 0'.例如,如果整数使用32位,则最多包含10位十进制数.所以你的代码应该是这样的:
int i;
char s[11];
...
sprintf(s,"%ld", i);
Run Code Online (Sandbox Code Playgroud)