从键盘读入若干字符串,对它们按字母大小的顺序进行排序,然后把排好序的字符串送到磁盘文件中保实验分析
时间: 2024-03-21 14:43:38 浏览: 77
好的,您可以参考下面的代码实现:
```python
import os
# 从键盘读入若干字符串
strings = []
while True:
string = input("请输入字符串(输入 q 结束):")
if string == "q":
break
strings.append(string)
# 对字符串进行排序
strings.sort()
# 将排好序的字符串写入磁盘文件
filename = "sorted_strings.txt"
with open(filename, "w") as f:
f.write("\n".join(strings))
# 打印文件内容
with open(filename, "r") as f:
print(f.read())
# 删除文件
os.remove(filename)
```
代码的运行流程如下:
1. 从键盘读入若干字符串并放入列表 `strings` 中
2. 对列表 `strings` 进行排序
3. 将排好序的字符串按行写入磁盘文件 `sorted_strings.txt`
4. 打印文件内容
5. 删除文件
注意:这里的排序是按照字母大小进行的,大写字母排在小写字母前面。如果需要按照字母表顺序进行排序,可以使用 `sorted` 函数的 `key` 参数,例如 `strings.sort(key=str.lower)`。
相关问题
从键盘读入若干字符串,对它们按字母大小的顺序进行排序,然后把排好序的字符串送到磁盘文件中保存
好的,可以通过以下的代码实现你的需求:
```python
# 从键盘读入字符串
strings = []
while True:
s = input("请输入字符串(输入 q 退出):")
if s == 'q':
break
strings.append(s)
# 对字符串列表进行排序
strings.sort()
# 把排好序的字符串写入文件
with open('sorted_strings.txt', 'w') as f:
for s in strings:
f.write(s + '\n')
```
这段代码会不断从键盘读入字符串,直到输入 q 为止。然后把这些字符串存储在一个列表中,使用列表的 sort 方法进行排序。最后,把排好序的字符串逐行写入一个名为 sorted_strings.txt 的文件中。
从键盘读入若干字符串,对它们按字母大小的顺序进行排序,然后把排好序的字符串送到磁盘文件中保存。
好的,针对您的问题,我可以给出以下的解决方案:
1. 首先,需要从键盘读入若干字符串。可以使用 C 语言中的 fgets() 函数逐行读入字符串,也可以使用 scanf() 函数逐个读入字符串。
2. 接着,需要对读入的字符串进行排序。可以使用 C 语言中的 qsort() 函数进行快速排序,也可以自己实现其他排序算法。
3. 排序完成后,需要把排好序的字符串送到磁盘文件中保存。可以使用 C 语言中的 fopen() 函数打开文件,使用 fputs() 函数将字符串写入文件,最后使用 fclose() 函数关闭文件。
下面是一个简单的示例代码,可以供您参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 比较函数,用于 qsort() 排序
int cmp(const void *a, const void *b)
{
return strcmp(*(const char **)a, *(const char **)b);
}
int main()
{
int n; // 字符串数量
char **str; // 字符串数组
// 读入字符串数量
printf("请输入字符串数量:");
scanf("%d", &n);
// 动态分配字符串数组的内存空间
str = (char **)malloc(n * sizeof(char *));
for (int i = 0; i < n; i++) {
str[i] = (char *)malloc(100 * sizeof(char)); // 假设每个字符串长度不超过 100
}
// 逐行读入字符串
getchar(); // 消耗多余的回车符
printf("请逐行输入字符串:\n");
for (int i = 0; i < n; i++) {
fgets(str[i], 100, stdin);
}
// 对字符串进行排序
qsort(str, n, sizeof(char *), cmp);
// 将排序后的字符串写入文件
FILE *fp = fopen("sorted.txt", "w");
if (fp == NULL) {
printf("无法打开文件!\n");
return 1;
}
printf("排序后的字符串如下:\n");
for (int i = 0; i < n; i++) {
printf("%s", str[i]); // 输出排序结果
fputs(str[i], fp); // 写入文件
}
fclose(fp); // 关闭文件
// 释放内存空间
for (int i = 0; i < n; i++) {
free(str[i]);
}
free(str);
return 0;
}
```
当然,这只是一个简单的示例代码,您可以根据自己的需要进行修改和完善。
阅读全文