将int转换为char并反转

时间:2016-12-02 03:53:26

标签: c

任务是将int转换为char。这是我的转换代码

#include <conio.h>
#include <stdio.h>

main(void)
{
int number,reserve ;
scanf_s("%d",&number);
if (number > 0 || number == 0)
{
    do
    {
        reserve = number % 10;
        printf("%c", reserve + '/0');
        number /= 10;
    } while (number != 0);
}
else
{
    number *= -1;
    printf("-");
    do
    {
        reserve = number % 10;
        printf("%c", reserve + '/0');
        number /= 10;
    } while (number != 0);

}
_getch();
return 0;
}

问题是这是打印结果与我想要的相反。所以我正在寻找一种方法来扭转它。但是我的代码是用char打印char。可能我只需要将所有字符保存到一些字符串中,但我不确定它是如何做的。感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

您是否尝试将它们存储在数组中并反向打印数组?

#include <stdio.h>

int main(void)
{
    int number,reverse,i ;
    scanf("%d",&number);
    char string[20];
    int index = 0;
    if (number< 0){
       number *= -1;
       printf("-");
    }
    do
    {
        reverse = number % 10;
        //printf("%c", reverse);
        string[index++] = reverse;
        number /= 10;
    } while (number != 0);

    for (i = index ; i >= 0 ; i--)
        printf("%c", string[i]);
    return 0;
}

答案 1 :(得分:0)

正如您在问题中所假设的那样,您需要存储字符以反向打印它们。

使用数组完成此任务非常简单:

// I never know how much memory I need ...
char reverse[200];
int i = 0;
reverse[i++] = next calculated character

while (i) {
    print reverse[--i];
}