把十进制数转换成字符串

挨踢民工的乐章 2009-04-20 09:12:48

#include <stdio.h>

char * Convert(int number)
{
int i=0;
int temp;
char a[20];
char * r=a;
while(number!=0)
{
temp=number%10;
a[i]=temp+48;
printf("%c\n",a[i]);
i++;
number=number/10;
}
a[i]='\0';
printf("%s\n",r);
printf("%d\n",r);
return r;
}
void main()
{
int temp;
char * r;
printf("The Number:");
scanf("%d",&temp);
r=Convert(temp);
printf("%d\n",r);
printf("The Result:%s",r);
getchar();
}


为什么是错误的结果?
...全文
1339 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
piginthetree 2009-04-21
  • 打赏
  • 举报
回复
接分 。。
Crazy_hand 2009-04-21
  • 打赏
  • 举报
回复
接分!!!!
fox513 2009-04-21
  • 打赏
  • 举报
回复
原来还有标准库函数啊
wanhui219 2009-04-21
  • 打赏
  • 举报
回复
C标准函数
itoa(....)
foxyz123 2009-04-21
  • 打赏
  • 举报
回复
接分的人还真是多
baiwei156 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 FengRider 的回复:]
引用楼主 benben2301 的帖子:
char a[20];
char * r=a;
..................
return r;

这里的a是在函数内部定义的,r指向的是一个栈空间,在函数调用完后,a空间被释放,r指向的是未知空间,在函数外部使用指针指向r所指的空间,自然也是指向未知空间,所以会出错。如果希望指向的空间在函数调用完后被释放,则应该在函数外部来定义,然后做为参数传给参数,或者在函数内部定义为静态的。如:
1:char…
[/Quote]

学习,接分
mostmark 2009-04-21
  • 打赏
  • 举报
回复
接分楼!
FengRider 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 benben2301 的帖子:]
char a[20];
char * r=a;
..................
return r;
[/Quote]
这里的a是在函数内部定义的,r指向的是一个栈空间,在函数调用完后,a空间被释放,r指向的是未知空间,在函数外部使用指针指向r所指的空间,自然也是指向未知空间,所以会出错。如果希望指向的空间在函数调用完后被释放,则应该在函数外部来定义,然后做为参数传给参数,或者在函数内部定义为静态的。如:
1:char * Convert(int number,char * strParam)
{
......
r = strParam;
......
}
2:char * Convert(int number)
{
.......
static char a[20] = {0};
char * r = a;
.......
}
wxc0077 2009-04-21
  • 打赏
  • 举报
回复
据说有标准库函数的
kobemadi 2009-04-21
  • 打赏
  • 举报
回复
有必要这么麻烦吗?
shanzengguang 2009-04-20
  • 打赏
  • 举报
回复
接分
liao05050075 2009-04-20
  • 打赏
  • 举报
回复
哈,还有分。我也接
show30 2009-04-20
  • 打赏
  • 举报
回复
顶你,接分
douchog_13k 2009-04-20
  • 打赏
  • 举报
回复
谢谢共享 ,顶你接分 ....
qq675927952 2009-04-20
  • 打赏
  • 举报
回复
接分。。。。。。。。。。。。
zhangchaokun 2009-04-20
  • 打赏
  • 举报
回复
既然自己解决了,那我就来接分了,
祝共同学习C++,共同进步,哈
build8502 2009-04-20
  • 打赏
  • 举报
回复
学习下
wanjingwei 2009-04-20
  • 打赏
  • 举报
回复
接分+学习
萧霖 2009-04-20
  • 打赏
  • 举报
回复
咦。。。
kostion 2009-04-20
  • 打赏
  • 举报
回复
接分!
加载更多回复(8)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧