读书人

奇妙的整数转化为字符串有关问题

发布时间: 2012-04-21 14:34:44 作者: rapoo

奇妙的整数转化为字符串问题?

C/C++ code
#include<iostream>#include<stdio.h>int main(void){int num=12345,j=0,i=0;char temp[7],str[7];while(num){temp[i]=num%10+'0';i++;num=num/10;}temp[i]=0;printf("temp=%s\n", temp);i=i-1;printf(" temp=%d\n", i);//刚刚转化的字符串是逆序的,必须把它反转过来while(i>=0){str[j]=temp[i];j++;i--;}str[j]=0;printf("string=%s\n", str);return 0;}


上面的代码是将:整数转化为字符串。
问题1: 为什么如果将str[j]=0,去掉去掉以后就会出现结果错误:string=12345烫烫烫烫烫?4321?

问题2:为什么 temp[i]=num%10+'0'; 就把整型数一下子变为字符型的了?


请教高手!!!


[解决办法]
这个也太基础点了
字符串必须以0结束
‘0’到‘9’是连续的ascii字符,因此'0'+0=0;'0'+9='9'

[解决办法]
楼主先了解一下ASCII码,0——9在ASCII中的数值为48-57,所以 temp[i]=num%10 +'0'就可以了。。

字符串都要以 \0结尾吧,,加str[j]=0就是加这个。。
[解决办法]
字符串都是以\0结束的,所以在最后必须加上\0,不然就会有乱码~~
temp[i]=num%10+'0',先对整数取每位的数,然后转换成字符~~

读书人网 >C++

热点推荐