c语言设计一个子函数,将任意一个八进制数据字符串转换为十进制数据,并在子函数中调用此函数
时间: 2023-07-14 07:13:55 浏览: 49
以下是一个将八进制数据字符串转换为十进制数据的子函数示例:
```c
#include <stdio.h>
#include <string.h>
#include <math.h>
// 将八进制数据字符串转换为十进制数据
int oct_to_dec(char oct[]) {
int dec = 0;
int len = strlen(oct);
for (int i = 0; i < len; i++) {
int digit = oct[i] - '0';
dec += digit * pow(8, len - i - 1);
}
return dec;
}
int main() {
char octal[] = "76";
int decimal = oct_to_dec(octal);
printf("%s in octal is %d in decimal\n", octal, decimal);
return 0;
}
```
在上面的示例中,`oct_to_dec`函数接收一个八进制数据字符串,并遍历字符串中的每个数字字符。对于每个数字字符,我们将其转换为数字值,然后使用 `pow` 函数将其乘以适当的权重值(8 的 n 次幂,其中 n 是该数字字符在字符串中的位置)。最后将所有加权值相加后,就得到了该八进制数据对应的十进制数据。
在 `main` 函数中,我们将一个八进制数据字符串 `"76"` 传递给 `oct_to_dec` 函数,然后打印出其对应的十进制数据 `62`。