C++怎么把int转换成char

#include <iostream>
using namespace std;
int reverseDigit(int num)
{
int n;
n=sizeof(num);
int *i,*j;
int *s=#
i=s;j=s+n;
while(i<j)
{int temp;
temp=*i;
*i=*j;
*j=temp;
i++,j--;}
return num;
}
int main()
{
int num,number;
cin>>num;
number=reverseDigit(num);
cout<<number<<endl;
return 0;
}

我知道问题是num为int型不能用指针交换每位数的位置,但怎么把num强制转换为char呢?

int 强制转换为char 有精度损失
你说的转说,是指num对应数字转化吧。
如果是这样的话,就不是转化为char 而是转换为char * 或者说是char []
比如123 要转换成字符数组 123这样。
循环取每一位,放到数组里。
比如 int num ; char array[10];
int k=0;
do
{
array[k++]=num%10+'0';
num=num/10;
}while(num);

这样子array就是存num的数字,

也可以用sprintf函数 。
sprintf(array,"%d",num);
这样也可以了。

你上面写的代码很乱。 比如
j=s+n;

这里j,s都是地址 ,n是整数。 这样加出来都不知道是什么东西。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-21
num强制转换为char :(char)(num),强制类型转换
第2个回答  2013-09-21
//指针这个东西再这个编程时代已经没什么必要存在了。。。 一般都可以用其他方式来实现

建议你用String类来做 ,很简单 ( 加上String 的头文件)
String str; //str也可以当做数组来用
getline(cin,str);
相似回答