在主函数中输入10个字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串(从小到大)。要求用指针数组实现。 函数接口定义: void sort(char *p[N]);
时间: 2023-09-12 11:07:32 浏览: 101
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
#define N 10
#define MAX_LEN 100
void sort(char *p[N]);
int main() {
char str[N][MAX_LEN];
char *p[N];
printf("Please input %d strings:\n", N);
for (int i = 0; i < N; i++) {
scanf("%s", str[i]);
p[i] = str[i];
}
sort(p);
printf("Sorted strings:\n");
for (int i = 0; i < N; i++) {
printf("%s\n", p[i]);
}
return 0;
}
void sort(char *p[N]) {
char *temp;
for (int i = 0; i < N - 1; i++) {
for (int j = i + 1; j < N; j++) {
if (strcmp(p[i], p[j]) > 0) {
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}
}
```
在这个程序中,我们首先定义了一个指针数组 `p`,用于存储输入的字符串。然后在输入字符串时,将每个字符串的首地址存入 `p` 中。接着调用 `sort` 函数进行排序,排序方法为冒泡排序。最后在主函数中输出已排序的字符串。
阅读全文