C语言编程,请给出最简单的代码实现输入一个以回车结束的字符串(少于80个字符),滤去所有的非十六进制字符后,组成一个新的字符串(十六进制形式),然后将其转换为十进制数后输出。【样例输入】+A 【样例输出】Hex=10
时间: 2024-02-18 11:04:32 浏览: 55
下面是实现你要求的 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[80];
int hex = 0;
int len, i;
printf("请输入一个不超过80个字符的字符串:");
fgets(str, 80, stdin); // 从键盘输入字符串
len = strlen(str);
for (i = 0; i < len; i++) {
if (str[i] >= '0' && str[i] <= '9') {
hex = hex * 16 + str[i] - '0';
} else if (str[i] >= 'A' && str[i] <= 'F') {
hex = hex * 16 + str[i] - 'A' + 10;
} else if (str[i] >= 'a' && str[i] <= 'f') {
hex = hex * 16 + str[i] - 'a' + 10;
}
}
printf("Hex=%d\n", hex);
return 0;
}
```
程序流程如下:
1. 定义一个 `char` 类型的数组 `str`,用于存储输入的字符串。
2. 定义一个整型变量 `hex`,用于存储最后转换后的十进制数。
3. 从键盘输入字符串,并使用 `fgets()` 函数存储到数组 `str` 中。
4. 计算字符串的长度 `len`,循环遍历字符串中的每个字符。
5. 如果字符是数字,将其转换为十六进制数并加到 `hex` 中。
6. 如果字符是大写字母 A~F,将其转换为十六进制数并加到 `hex` 中。
7. 如果字符是小写字母 a~f,将其转换为十六进制数并加到 `hex` 中。
8. 输出最终的十进制数 `hex`。
注意:本程序没有进行输入字符串是否合法的检查,如果输入的字符串中包含非法字符,程序可能会出现错误。
阅读全文