程序中函数 fun()的功能: 将一个由八进制数字字符组成的字符串转换为与其值相等的十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。 **输入格式要求:"%d" 提示信息:"输入一个八进制字符串(5位):" "错误:字符串太长\n\n" "错误:%c 不是一个八进制字符\n\n" **输出格式要求:"输入的八进制字符串为" "\n%s 转换成十进制整数为:%d\n" 程序运行示例如下: 输入一个八进制字符串(5位):234 输入的八进制字符串为234 234 转换成十进制整数为:156
时间: 2023-07-07 09:08:02 浏览: 155
Delphi进制转换,十进制,二进制,十六进制,字符串--超短精简
4星 · 用户满意度95%
以下是该函数的实现代码:
```c
#include <stdio.h>
#include <string.h>
int fun() {
char octal[6];
int decimal = 0;
printf("输入一个八进制字符串(5位):");
scanf("%s", octal);
if (strlen(octal) > 5) {
printf("错误:字符串太长\n\n");
return -1;
}
for (int i = 0; i < strlen(octal); i++) {
if (octal[i] < '0' || octal[i] > '7') {
printf("错误:%c 不是一个八进制字符\n\n", octal[i]);
return -1;
}
decimal = decimal * 8 + (octal[i] - '0');
}
printf("输入的八进制字符串为%s\n", octal);
printf("%s 转换成十进制整数为:%d\n", octal, decimal);
return 0;
}
```
函数中使用了一个字符数组 `octal` 来存储输入的字符串,使用了一个整数变量 `decimal` 来存储转换后的十进制整数。
首先使用 `scanf()` 函数读取用户输入的字符串,如果字符串长度超过5位则输出错误信息并返回-1。
然后遍历输入的字符串,如果发现不是八进制数字字符则输出错误信息并返回-1,否则将其转换为十进制整数并累加到 `decimal` 变量中。
最后输出输入的字符串和转换后的十进制整数即可。
阅读全文