c语言:从键盘输入一行字符串,将其中的数字字符按由大到小的顺序输出。
时间: 2024-12-11 12:42:16 浏览: 7
C语言程序设计-输入一行字符,分别统计出英文大小写字母、空格、数字和其他字符的个数
5星 · 资源好评率100%
在C语言中,你可以使用字符数组来存储用户输入的字符串,并遍历这个数组,识别出所有的数字字符,然后将它们转换成整数并进行排序。这里有一个简单的示例代码:
```c
#include <stdio.h>
#include <ctype.h> // 包含处理字符类型的功能
// 将字符转换为整数并添加到结果数组
int char_to_num(char ch) {
if (isdigit(ch)) return ch - '0'; // 如果是数字字符,返回其ASCII值减去'0'
else return INT_MAX; // 否则返回最大整数值表示不是数字
}
void sort_digits(char str[]) {
int len = strlen(str);
int num[10] = {0}; // 初始化一个大小为10的数组存放10个元素,表示0-9
for (int i = 0; i < len; ++i) {
if (isdigit(str[i])) {
num[char_to_num(str[i])]++; // 增加对应位置的计数
}
}
// 输出排序后的数字
for (int i = 9; i >= 0; --i) {
while (num[i]--) printf("%d ", i); // 数字字符大于等于当前索引才打印
}
}
int main() {
char input[100];
printf("请输入一行字符串:");
fgets(input, sizeof(input), stdin); // 读取一行输入,包括换行符
input[strcspn(input, "\n")] = '\0'; // 清除换行符
sort_digits(input);
return 0;
}
```
这个程序首先读取用户的输入,然后找出所有数字字符并统计每个数字出现的次数。最后,它会按照数字的大小降序打印出来。
阅读全文