c语言输入一个以回车符为结束符的字符串(少于十个字符),提取其中所有数字字符,将其转化为十进制整数,再将十进制转化为二进制
时间: 2023-12-30 13:02:58 浏览: 135
入一个字符,再输入一个以回车结束的字符串(少于80个字符)在字符串中查找该字符。.cpp
好的,我理解了您的问题。下面是用 C 语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[10]; // 存储输入的字符串
int num = 0; // 存储提取出来的数字
int decimal = 0; // 存储十进制数
int binary[32]; // 存储二进制数的每一位
int i, j, k;
// 读入字符串
printf("请输入一个少于十个字符的字符串(以回车符为结束符):");
fgets(str, 10, stdin);
str[strcspn(str, "\n")] = '\0'; // 去掉字符串末尾的回车符
// 提取数字字符并转化为十进制数
for (i = 0; i < strlen(str); i++) {
if (str[i] >= '0' && str[i] <= '9') { // 如果是数字字符
num = str[i] - '0';
decimal = decimal * 10 + num;
}
}
// 十进制转二进制
for (j = 0; decimal > 0; j++) {
binary[j] = decimal % 2;
decimal /= 2;
}
// 输出二进制数
printf("转化为二进制数为:");
for (k = j - 1; k >= 0; k--) {
printf("%d", binary[k]);
}
printf("\n");
return 0;
}
```
这个程序会先读入一个少于十个字符的字符串,并提取其中的数字字符,将其转化为十进制数。然后,它会将十进制数转化为二进制数,并输出二进制数的每一位。
注意:这个程序假设输入的字符串中只包含数字字符和回车符,如果输入的字符串中包含其他字符,程序可能会出现意想不到的错误。如果需要更严格的输入要求,可以在读入字符串后进行字符检查。
阅读全文