将int更改为某个字符串

时间:2016-01-11 16:32:09

标签: c

所以我试图从用户那里得到一个数字(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;
}

2 个答案:

答案 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'