回 帖 发 新 帖 刷新版面

主题:一个bug,就是找不到啊,高手帮忙

将十六进制数字符串转换为对应的十进制数

#include <stdio.h>
#define YES 1
#define NO 0
void main()
{
    int sixteen(char s[]);
    char num[]="0x123";
    printf("%d\n",sixteen(num));
    int sixteen(char s[])
    { 
        int i,flag,n,m;
        i=0;
        if(s[i]=='0')
        {
            ++i;
         if(s[i]=='x'||s[i]=='X')
            ++i;
        }
        n=0;
        flag=YES;
        for(;flag==YES;++i)
        {  
            if(s[i]>='0'&&s[i]<='9')
              m=s[i]-'0';
          else
            if(s[i]>='a'&&s[i]<='f')
                m=s[i]-'a'+10;
          else
            if(s[i]>='A'&&s[i]<='F')
                m=s[i]-'A'+10;
          else 
              flag=NO;
            if(flag==YES)
              n=16*n+m;
        } 
       return n;    
    }
}

错误说:    'sixteen' : local function definitions are illegal

回复列表 (共3个回复)

沙发

子函数?C/C++不支持

板凳

哎呀,,,,对呀,,,,函数这一章好久没看。。这么基本的东西都忘了。。谢谢你啊!

3 楼

你太牛了,你以为你在用Q basic 啊!

我来回复

您尚未登录,请登录后再回复。点此登录或注册