在主函数中输入10个字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。要求用行指针实现。 函数接口定义: void sort(char (*p)[20]) ;
时间: 2023-09-12 11:07:32 浏览: 83
以下是实现该功能的代码:
```c
#include <stdio.h>
#include <string.h>
void sort(char (*p)[20]);
int main() {
char strs[10][20];
int i;
// 输入10个字符串
printf("Please input 10 strings:\n");
for (i = 0; i < 10; i++) {
scanf("%s", strs[i]);
}
// 调用排序函数
sort(strs);
// 输出已排好序的字符串
printf("The sorted strings are:\n");
for (i = 0; i < 10; i++) {
printf("%s\n", *(strs + i));
}
return 0;
}
void sort(char (*p)[20]) {
int i, j;
char temp[20];
// 冒泡排序
for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (strcmp(*(p + j), *(p + j + 1)) > 0) {
strcpy(temp, *(p + j));
strcpy(*(p + j), *(p + j + 1));
strcpy(*(p + j + 1), temp);
}
}
}
}
```
该程序中定义了一个函数 `sort`,它的参数是一个行指针,指向由 10 个字符串组成的二维字符数组。在 `sort` 函数中使用了冒泡排序算法对这些字符串进行排序,最终将得到一个按字典序排好序的字符串数组。主函数中先输入 10 个字符串,然后调用 `sort` 函数进行排序,并最终输出已排好序的字符串数组。
阅读全文