c语言从键盘输入5个字符串(每个字符串长度不超过80个字符),对字符串从小到大排序,输出排序前和排序后的字符串
时间: 2024-12-20 16:31:25 浏览: 12
在 C 语言中,你可以使用 `fgets` 函数从键盘获取用户输入的字符串,并结合 `strcmp` 函数进行比较以实现字符串的排序。这里是一个简单的示例程序,它首先获取五个字符串,然后使用冒泡排序算法进行排序,并打印原始和排序后的结果:
```c
#include <stdio.h>
#include <string.h>
// 冒泡排序函数
void bubbleSort(char str[], int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
if (strcmp(str[j], str[j + 1]) > 0) {
// 交换两个字符串
char temp[81];
strcpy(temp, str[j]);
strcpy(str[j], str[j + 1]);
strcpy(str[j + 1], temp);
}
}
}
}
int main() {
const int MAX_STRS = 5;
char strs[MAX_STRS][81];
// 输入5个字符串
printf("请输入5个字符串(每个字符串长度不超过80个字符):\n");
for (int i = 0; i < MAX_STRS; ++i) {
fgets(strs[i], sizeof(strs[i]), stdin); // 使用fgets防止换行符
strs[i][strlen(strs[i]) - 1] = '\0'; // 去掉 fgets 结尾的换行符
}
// 打印原始字符串
printf("\n原始字符串依次是:\n");
for (int i = 0; i < MAX_STRS; ++i) {
printf("%s\n", strs[i]);
}
// 对字符串排序
bubbleSort(strs, MAX_STRS);
// 打印排序后的字符串
printf("\n排序后的字符串依次是:\n");
for (int i = 0; i < MAX_STRS; ++i) {
printf("%s\n", strs[i]);
}
return 0;
}
```
当你运行这个程序时,会提示你逐个输入五个字符串,然后会展示原始字符串列表以及排序后的字符串列表。
阅读全文