输入5个字符串(含空格),用指针实现按字母顺序由小到大对字符串排序后输出。
时间: 2023-10-31 09:10:32 浏览: 68
下面是一个简单的实现,使用了指针数组来存储输入的字符串。排序时使用了字符串比较函数strcmp(),并且使用了冒泡排序算法。
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
int main() {
char *strings[5];
char temp[MAX_LEN];
// 读入字符串并存储到指针数组中
printf("请输入5个字符串,每个字符串长度不超过100个字符:\n");
for (int i = 0; i < 5; i++) {
scanf("%s", temp);
strings[i] = (char*)malloc(strlen(temp) + 1);
strcpy(strings[i], temp);
}
// 冒泡排序
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (strcmp(strings[j], strings[j+1]) > 0) {
char *temp = strings[j];
strings[j] = strings[j+1];
strings[j+1] = temp;
}
}
}
// 输出排序后的字符串
printf("排序后的字符串为:\n");
for (int i = 0; i < 5; i++) {
printf("%s\n", strings[i]);
free(strings[i]); // 释放动态分配的内存
}
return 0;
}
```
需要注意的是,在使用完动态分配的内存后,需要调用`free()`函数进行释放。
阅读全文