从键盘读入若干个字符,对他们按字母从大到小的顺序排序,按排好序的字符送到文件中保存
时间: 2024-03-09 22:46:29 浏览: 25
好的,我可以为您提供一份示例代码。
首先,您需要使用 C 语言中的标准输入输出库 `stdio.h`,以及字符串处理库 `string.h`。代码中还使用了 `ctype.h` 库中的 `isalpha()` 函数,用于判断字符是否是字母。
接下来,您需要定义一个字符数组 `str`,并使用 `fgets()` 函数从标准输入中读取若干个字符,将它们存储在 `str` 数组中。
然后,您需要定义一个整型变量 `len`,用于存储 `str` 数组中的字符个数。这里使用 `strlen()` 函数来获取字符个数。
接着,您需要使用冒泡排序算法对字符数组 `str` 进行排序。排序的方式是按照字母从大到小的顺序排序。在排序时,您需要自己编写一个比较函数。
最后,您可以使用 `fopen()` 函数打开一个文件,使用 `fprintf()` 函数将排好序的字符写入文件中,最后使用 `fclose()` 函数关闭文件。
下面是一份示例代码,供您参考:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_LEN 100
int cmp(char a, char b) {
return tolower(b) - tolower(a);
}
int main() {
char str[MAX_LEN];
printf("请输入若干个字符:");
fgets(str, MAX_LEN, stdin);
int len = strlen(str);
if (len > 0 && str[len-1] == '\n') {
str[len-1] = '\0';
len--;
}
for (int i = 0; i < len; i++) {
for (int j = 0; j < len-i-1; j++) {
if (cmp(str[j], str[j+1]) > 0) {
char temp = str[j];
str[j] = str[j+1];
str[j+1] = temp;
}
}
}
FILE *fp = fopen("output.txt", "w");
fprintf(fp, "%s", str);
fclose(fp);
printf("已将排好序的字符写入文件 output.txt 中\n");
return 0;
}
```
这段代码中,`fgets()` 函数从标准输入中读取若干个字符,并将它们存储在 `str` 数组中。接着,使用 `strlen()` 函数获取字符个数,并在需要的情况下将数组中的换行符替换为字符串结束符。
之后,使用冒泡排序算法对字符数组 `str` 进行排序,排序方式是按照字母从大到小的顺序排序,比较函数为 `cmp()` 函数。
最后,使用 `fopen()` 函数打开一个名为 `output.txt` 的文件,使用 `fprintf()` 函数将排好序的字符写入文件中,最后使用 `fclose()` 函数关闭文件。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)