所以我试图从用户那里得到一个数字(int)并将数字从整数移到空字符串,而不是我需要像字符串那样打印它。帮助
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#define CHAR_LENGTH 100
int main()
{
int num =0,units=0 ,length=0,counter =0,i=0 ;
char charNumber[CHAR_LENGTH]={0};
printf("enter some number(positive or negative)\n");
scanf("%d",&num);
while (num != 0)
{
units =0;
units = num %10;
num = num / 10;
charNumber[i]= (char)units;
counter++;
i++;
}
printf("%s",charNumber);
return 0;
}
答案 0 :(得分:2)
您需要自己编写算法吗?如果没有,请使用C标准库的itoa
功能(虽然它不是那么标准,但有些库包含它)。
你也可以像这样使用sprintf
:
int value = 2016;
char my_string[64];
snprintf(my_string, 64, "%d", value);
查看以下链接:
答案 1 :(得分:1)
三个问题:
(1)负数。 if (num < 0) { printf("-"); num = -num; }
(是的,我忽略了明显的角落案例)
(2)您按向后顺序打印数字。
(3)您需要添加'0',如charNumber[i]= (char)units + '0'