c语言使用指针写一个程序。在主函数中输入n个等长的字符串。用另一函数对它们排序,然后在主函数输出这n个已排好序的字符串。
时间: 2024-05-14 18:16:39 浏览: 71
好的,这是一个经典的使用指针排序字符串的问题。以下是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLEN 100
void sort(char *str[], int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(str[i], str[j]) > 0) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
int main() {
int n, i;
char *str[MAXLEN];
printf("请输入n:");
scanf("%d", &n);
printf("请输入%d个等长的字符串:\n", n);
for (i = 0; i < n; i++) {
str[i] = malloc(MAXLEN * sizeof(char));
scanf("%s", str[i]);
}
sort(str, n);
printf("排序后的字符串为:\n");
for (i = 0; i < n; i++) {
printf("%s\n", str[i]);
free(str[i]);
}
return 0;
}
```
以上程序中,首先定义了一个 sort 函数,接受一个字符串数组和其长度,使用选择排序法将字符串进行排序。在主函数中,读入 n 个字符串,存储在一个字符串数组中,然后调用 sort 函数对其排序,并输出排序后的结果,同时释放字符串数组中每个字符串所占用的内存。
阅读全文