用C语言编程 程序功能:输入一个以回车结束的字符串(少于 80 个字符),滤去所有 的非十六进制字符后,组成一个新字符串,然后将新字符串转换为十进制整数输出。
时间: 2024-02-25 15:54:01 浏览: 67
入一个字符,再输入一个以回车结束的字符串(少于80个字符)在字符串中查找该字符。.cpp
好的,我可以帮你解决这个问题。以下是 C 语言代码:
```c
#include <stdio.h>
#include <string.h>
int hexToDec(char c) {
if (c >= '0' && c <= '9') {
return c - '0';
} else if (c >= 'A' && c <= 'F') {
return c - 'A' + 10;
} else if (c >= 'a' && c <= 'f') {
return c - 'a' + 10;
} else {
return -1;
}
}
int main() {
char str[80];
char newStr[80];
int i, j = 0;
int num = 0;
printf("请输入一个少于80个字符的字符串:\n");
fgets(str, 80, stdin);
str[strcspn(str, "\n")] = '\0';
for (i = 0; str[i] != '\0'; i++) {
int dec = hexToDec(str[i]);
if (dec >= 0) {
newStr[j++] = str[i];
}
}
newStr[j] = '\0';
printf("过滤后的字符串:%s\n", newStr);
for (i = 0; newStr[i] != '\0'; i++) {
int dec = hexToDec(newStr[i]);
num = num * 16 + dec;
}
printf("转换为十进制整数:%d\n", num);
return 0;
}
```
这个程序会从用户输入中获取一个字符串,然后过滤掉所有的非十六进制字符,组成一个新的字符串。最后,它将新字符串转换为十进制整数并输出。
阅读全文