从键盘输入5个字符串(每个字符串长度不超过80个字符),对字符串从小到大排序,输出排序前和排序后的字符串。c语言,使用冒泡排序
时间: 2024-12-20 22:28:30 浏览: 20
在C语言中,我们可以使用冒泡排序算法对用户输入的五个字符串进行排序。首先,我们需要读取用户的输入,然后比较并交换字符串,重复这个过程直到数组完全有序。以下是一个简单的实现示例:
```c
#include <stdio.h>
#include <string.h>
// 冒泡排序函数
void bubbleSort(char* arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (strcmp(arr[j], arr[j + 1]) > 0) { // 使用strcmp比较字符串
char temp[90]; // 假设最长字符串长度为80,加上空格等
strcpy(temp, arr[j]);
strcpy(arr[j], arr[j + 1]);
strcpy(arr[j + 1], temp);
}
}
}
}
int main() {
const int MAX_STRINGS = 5;
char strings[MAX_STRINGS][90];
printf("请输入5个字符串(每个字符串不超过80个字符,空格分隔):");
fgets(strings, sizeof(strings), stdin); // 读取一行字符串
// 检查是否有多余的空格,并处理换行符
int len = strlen(strings);
if (strings[len - 1] == '\n') {
strings[len - 1] = '\0';
}
char* token = strtok(strings, " ");
int i = 0;
while (token && i < MAX_STRINGS) {
strcpy(strings[i++], token);
token = strtok(NULL, " ");
}
bubbleSort(strings, MAX_STRINGS);
printf("排序前的字符串:\n");
for (int k = 0; k < MAX_STRINGS; k++) {
printf("%s ", strings[k]);
}
printf("\n");
printf("排序后的字符串:\n");
for (int k = 0; k < MAX_STRINGS; k++) {
printf("%s ", strings[k]);
}
printf("\n");
return 0;
}
```
阅读全文