输入5个字符串(含空格),用指针实现按字母顺序由小到大对字符串排序后输出。
时间: 2023-10-31 19:10:31 浏览: 91
以下是用指针实现按字母顺序由小到大对字符串排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100
void sort_strings(char *strings[], int n);
int main() {
char *strings[5];
char buffer[MAX_LEN];
int i;
// 输入5个字符串
for (i = 0; i < 5; i++) {
printf("请输入第 %d 个字符串:", i + 1);
fgets(buffer, MAX_LEN, stdin);
buffer[strcspn(buffer, "\n")] = '\0'; // 去掉输入字符串最后的换行符
strings[i] = strdup(buffer); // 使用 strdup 函数复制字符串
}
// 按字母顺序排序字符串
sort_strings(strings, 5);
// 输出排序后的字符串
printf("\n排序后的字符串为:\n");
for (i = 0; i < 5; i++) {
printf("%s\n", strings[i]);
}
// 释放内存
for (i = 0; i < 5; i++) {
free(strings[i]);
}
return 0;
}
void sort_strings(char *strings[], int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(strings[i], strings[j]) > 0) {
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
```
程序中使用了 `strdup` 函数来复制字符串,并使用 `free` 函数释放内存。`sort_strings` 函数用来按字母顺序排序字符串,使用了指针变量 `temp` 来交换字符串的位置。
阅读全文