编写程序:从键盘输入5个字符串(每个字符串长度不超过80个字符),对字符串从小到大排序,输出排序前和排序后的字符串。
时间: 2024-12-25 15:25:25 浏览: 1
您可以使用C语言编写如下的程序来实现这个功能:
```c
#include <stdio.h>
#include <string.h>
// 对字符串进行冒泡排序
void string_sort(char str[], int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = 0; j < len - 1 - i; j++) {
if (strcmp(str + j, str + j + 1) > 0) {
// 使用strcpy临时交换两个字符串
char temp[81];
strncpy(temp, str + j, 80);
memcpy(str + j, str + j + 1, 80);
memcpy(str + j + 1, temp, 80);
}
}
}
}
int main() {
const int MAX_STR_LEN = 80;
char str[5][MAX_STR_LEN]; // 定义一个字符串数组
int i;
// 输入5个字符串
printf("请输入5个字符串(每个不超过80字符):\n");
for (i = 0; i < 5; i++) {
fgets(str[i], MAX_STR_LEN, stdin); // fgets用于读入包括换行符的字符串
str[i][strcspn(str[i], "\n")] = '\0'; // 清除换行符
}
// 排序字符串
for (i = 0; i < 5; i++) {
string_sort(str[i], strlen(str[i]));
}
// 输出排序前的字符串
printf("\n原始字符串:\n");
for (i = 0; i < 5; i++) {
printf("%s ", str[i]);
}
printf("\n");
// 输出排序后的字符串
printf("\n排序后的字符串:\n");
for (i = 0; i < 5; i++) {
printf("%s ", str[i]);
}
return 0;
}
```
运行此程序后,它会提示用户依次输入5个字符串,然后按照字典顺序排序并分别输出原始和排序后的字符串列表。
阅读全文