用C语言本题要求实现一个函数,实现学生英文名按照其在字典中的顺序进行排序,假设学生不超过20个。要求如下:用指针数组作函数参数,实现字符串的按字典顺序排列。 函数接口定义: void SortString ( char *ptr[], int n ); 其中 ptr[] 为字符指针数组, n 为学生数量。
时间: 2024-01-22 13:19:00 浏览: 68
以下是一个用C语言实现学生英文名按照字典顺序排序的函数:
```c
#include <stdio.h>
#include <string.h>
void SortString(char *ptr[], int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (strcmp(ptr[j], ptr[j + 1]) > 0) {
temp = ptr[j];
ptr[j] = ptr[j + 1];
ptr[j + 1] = temp;
}
}
}
}
int main() {
char *names[20] = {"Tom", "Jerry", "Alice", "Bob", "Eva"};
int n = 5, i;
printf("Before sorting:\n");
for (i = 0; i < n; i++) {
printf("%s\n", names[i]);
}
SortString(names, n);
printf("After sorting:\n");
for (i = 0; i < n; i++) {
printf("%s\n", names[i]);
}
return 0;
}
```
在这个函数中,我们使用了冒泡排序法对字符串进行排序,通过比较两个字符串的字典序并交换位置来完成排序。函数的输入参数为一个字符指针数组和学生数量,输出结果为按字典顺序排列后的字符串数组。
阅读全文