| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 592 人关注过本帖
标题:C语言问题 《将8,10,16进制数字串转换成十进制整数的函数》求助
只看楼主 加入收藏
zangjingyao
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2010-1-4
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:2 
C语言问题 《将8,10,16进制数字串转换成十进制整数的函数》求助

  (教材习题 6.7 )( filename: CP63.C )
    设计一个名为str2int的函数,它能将八进制数字
    串( 以 0 为前导 )、十进制数字串和十六进制数字
    串( 以0x或0X为前导 )转换成 long 型十进制整数。
    要求在主函数中输入要转换的数字串和输出调用
  该函数得到的转换结果。例如,
  输入:0                      输出:0
 输入:012345            输出:5349
 输入:0x4Ab             输出:1195
 输入:6789                输出:6789
问题补充:void str2int(char s[], int n)
{  int i, r;
   {if(s[0]=='0')
   if(s[1]=='x'||'X')
   do {  r=n%10; i=1;                        
             s[i++] = r<10 ? r+'0' : r+'0'-'A';   
          } while (n/=10);
    else
 do {  r=n%8; i=0;                        
             s[i++] = r<8 ? r+'0' : r-'8';   
          } while (n/=10);
 }
 
 s[i]='\0';              
    reverse(s);
}
int main()
{  int  m;  
    char  a[20];
    printf("Input m:");
    scanf("%d", &m);
    str2int(a, m);
    puts(a);
 return 0;
}

这个程序不能运行  为什么 请指教
搜索更多相关主题的帖子: 数字 函数 整数 C语言 进制 
2010-01-04 14:14
zhjr5201314
Rank: 4
等 级:业余侠客
帖 子:63
专家分:238
注 册:2009-9-10
收藏
得分:10 
reverse(s);没有定义!
2010-01-04 14:26
fqtb16
Rank: 7Rank: 7Rank: 7
来 自:上海
等 级:黑侠
帖 子:96
专家分:504
注 册:2009-12-28
收藏
得分:10 
    scanf("%d", &m);
    str2int(a, m);
你输入一个整数,然后调用str2int(a, m),
在这个函数里你对m处理我是没看明白,
  {if(s[0]=='0')
   if(s[1]=='x'||'X')这两句有什么意义?跟输入的m有什么关系?

爱拼才会赢
2010-01-04 14:42
快速回复:C语言问题 《将8,10,16进制数字串转换成十进制整数的函数》求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014498 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved