任务是将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。可能我只需要将所有字符保存到一些字符串中,但我不确定它是如何做的。感谢任何帮助。
答案 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];
}