【发布时间】:2021-04-22 02:59:09
【问题描述】:
我想制作一个将二进制数转换为十进制、八进制和十六进制的程序。 在接受输入时,我正在考虑他们的标准表示。例如:八进制是“o10” 所以我将 10 转换为十进制,得到 8。
这是我输入字符串并将其转换为十进制的代码:
int main()
{
int ch=0;
char str[1000];
printf("Enter the number\n");
scanf(" %s",str);
l=strlen(str);
for(int j=0;j<l;j++)
{
if(str[j]>=48 && str[j]<=57)
n=n*10+(str[j]-48);
}
}
但问题是它不适用于八进制。如何正确输入?
【问题讨论】:
-
请提供比“它不起作用”更多的细节。
-
您可以检查像 o 这样的开始字符,在这种情况下,在将字符转换为 int 时使用 *8 而不是 *10(使用变量来保存 8 或 10)
-
库函数
strtol()可以做你想做的事:不需要实现你自己的版本。