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;
}
这个程序不能运行 为什么 请指教