本题要求实现一个函数,实现学生英文名按照其在字典中的顺序进行排序,假设学生不超过20个。要求如下:用指针数组作函数参数,实现字符串的按字典顺序排列。 函数接口定义: void SortString ( char *ptr[], int n ); 其中 ptr[] 为字符指针数组, n 为学生数量。
时间: 2024-01-21 14:20:06 浏览: 45
请用指针数组的方法将字符串排序
以下是一个可能的实现:
```c
#include <stdio.h>
#include <string.h>
void SortString(char *ptr[], int n) {
// 冒泡排序,每次比较相邻两个字符串
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (strcmp(ptr[j], ptr[j+1]) > 0) {
char *temp = ptr[j];
ptr[j] = ptr[j+1];
ptr[j+1] = temp;
}
}
}
}
int main() {
int n = 5;
char *names[] = {"Alice", "Bob", "Charlie", "David", "Eve"};
// 排序前输出
printf("Before sorting:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", names[i]);
}
SortString(names, n);
// 排序后输出
printf("\nAfter sorting:\n");
for (int i = 0; i < n; i++) {
printf("%s\n", names[i]);
}
return 0;
}
```
输出结果为:
```
Before sorting:
Alice
Bob
Charlie
David
Eve
After sorting:
Alice
Bob
Charlie
David
Eve
```
阅读全文