首页 > 编程语言 > 详细

【C语言】八进制转十进制

时间:2021-06-20 22:40:37      阅读:18      评论:0      收藏:0      [点我收藏+]
程序中函数 fun()的功能: 将一个由八进制数字字符组成的字符串转换为与其值相等的十进制整数。
规定输入的字符串最多只能包含5位八进制数字字符。 **输入格式要求:gets 提示信息:"输入一个八进制字符串(5位):" "错误:字符串太长\n\n" "错误:%c 不是一个八进制字符\n\n" **输出格式要求:"输入的八进制字符串为" "\n%s 转换成十进制整数为:%d\n" 程序运行示例如下: 输入一个八进制字符串(5位):234 输入的八进制字符串为234 234 转换成十进制整数为:156

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<math.h>
 4 int fun(char str[]);
 5 main()
 6 {
 7     char str[5];
 8     int i,flag=0;
 9     printf("输入一个八进制字符串(5位):");
10     gets(str);
11     if (strlen(str) > 5)
12         printf("错误:字符串太长\n\n");
13     else
14     {
15         for (i = 0; str[i]!=\0; i++)
16         {
17             if (str[i] < 0 || str[i] > 7)
18             {
19                 printf("错误:%s 不是一个八进制字符\n\n", str);
20                 flag=-1;
21                 break;
22             }
23         }
24         if(flag==0)
25         {
26             printf("输入的八进制字符串为%s", str);
27             printf("\n%s 转换成十进制整数为:%d\n", str, fun(str));
28         }
29         
30     }
31 
32 }
33 int fun(char str[])
34 {
35     int n = 0, i=0;
36     while (str[i]!=\0)
37     {
38         n += (str[strlen(str)-i-1]-48) * pow(8,i);  //这是一个字符,需要进行转换才是int型数字
39         i++;
40     }
41     return n;
42 }

 

 

【C语言】八进制转十进制

原文:https://www.cnblogs.com/20201212ycy/p/14907607.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!