用c语言输入一个以回车结束的字符串(少于 80 个字符),滤去所有 的非十六进制字符后,组成一个新字符串,然后将新字符串转换为十进制整数输出。
时间: 2024-03-07 18:48:52 浏览: 63
C语言实现字符串转十进制算法
好的,我可以为您提供一个示例代码来实现您的需求:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[80];
char new_str[80];
int i, j = 0, len, hex_num = 0;
printf("请输入一个少于80个字符的字符串:\n");
fgets(str, 80, stdin);
len = strlen(str);
for (i = 0; i < len; i++) {
if ((str[i] >= '0' && str[i] <= '9') || (str[i] >= 'a' && str[i] <= 'f') || (str[i] >= 'A' && str[i] <= 'F')) {
new_str[j] = str[i];
j++;
}
}
new_str[j] = '\0';
len = strlen(new_str);
for (i = 0; i < len; i++) {
if (new_str[i] >= '0' && new_str[i] <= '9') {
hex_num = hex_num * 16 + (new_str[i] - '0');
} else if (new_str[i] >= 'a' && new_str[i] <= 'f') {
hex_num = hex_num * 16 + (new_str[i] - 'a' + 10);
} else if (new_str[i] >= 'A' && new_str[i] <= 'F') {
hex_num = hex_num * 16 + (new_str[i] - 'A' + 10);
}
}
printf("新字符串为:%s\n", new_str);
printf("转换为十进制整数为:%d\n", hex_num);
return 0;
}
```
这个程序会先读入一个字符串,然后筛选出其中的十六进制字符,组成一个新的字符串。接着,它会将新字符串转换为十进制整数并输出。注意,这个程序中使用了 `fgets()` 函数来读入字符串,它会在读到换行符时停止,因此不需要额外处理回车键。
阅读全文