在线求答~~~~~~~~~关于字符串转换为整数的问题

m0792 2006-04-09 10:44:26
我用
#include<stdio.h>
#include<string.h>

void main()
{
char str[5];
char *s=str;
long t=0;
gets(str);
while(*s!='\0')
{
t=t*10+(*s-48);
s++;
}
printf("%ld",t);
return ;
} //可以得到答案
但是我在用了递归调用不能得到答案
#include<string.h>
#include<stdio.h>

long f(char *s)
{
long t=0;
if (*s=='\0')
return 0;
else
{

t=t*10+(*s-48);
f(s+1);
}
return t;
}
void main()
{
long a;
char str[5];
char *s=str;
gets(str);
a=f(s);
printf("%ld",a);
return;
}//如果输入123 却达到是1
为什么
谢谢给予解答!
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
m0792 2006-04-09
  • 打赏
  • 举报
回复
还有个问题,他为什么每次只显示第一个字符对应的数字呢?

m0792 2006-04-09
  • 打赏
  • 举报
回复
谢谢
谢谢
谢谢
终于找到原因了
谢谢各位!
wupangzi 2006-04-09
  • 打赏
  • 举报
回复
long t=0;
你每次进入函数都初始为0,那是不对的,改为:static long t=0;
m0792 2006-04-09
  • 打赏
  • 举报
回复
那我这为什么不对啊
能不能讲明白些
本人愚吨
谢谢
Ninstein 2006-04-09
  • 打赏
  • 举报
回复
like this
http://www.ninstein.com/blog/article.asp?id=4
m0792 2006-04-09
  • 打赏
  • 举报
回复
哪为大侠能亮剑那?

69,371

社区成员

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

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