定义指针数组,使其指向字符串常量:char * name[4]={“Follow”,,“Great”, “FORTRAN”,“Computer”},并进行排序。实际是对指针指向的排序,字符串不动! 要求:函数调用实现。
时间: 2023-10-06 21:08:07 浏览: 37
好的,这是一个需要使用指针数组来对字符串常量进行排序的问题。具体实现步骤如下:
1. 定义一个指针数组,数组元素为指向字符串常量的指针,即 `char *name[4]`。
2. 将每个指针指向对应的字符串常量,即 `name[0] = "Follow"`,`name[1] = "Great"`,`name[2] = "FORTRAN"`,`name[3] = "Computer"`。
3. 定义一个排序函数,函数名为 `sort_strings`,参数为指向指针数组的指针,以及字符串数量。
4. 在 `sort_strings` 函数中,使用冒泡排序法对指针数组中的指针进行排序,排序的依据是指针指向的字符串常量的字典序。
5. 输出排序后的字符串常量。
下面是具体的代码实现:
```c
#include <stdio.h>
#include <string.h>
void sort_strings(char **strings, int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (strcmp(strings[j], strings[j + 1]) > 0) {
temp = strings[j];
strings[j] = strings[j + 1];
strings[j + 1] = temp;
}
}
}
}
int main() {
char *name[4] = {"Follow", "Great", "FORTRAN", "Computer"};
int i;
printf("排序前的字符串常量为:\n");
for (i = 0; i < 4; i++) {
printf("%s\n", name[i]);
}
sort_strings(name, 4);
printf("排序后的字符串常量为:\n");
for (i = 0; i < 4; i++) {
printf("%s\n", name[i]);
}
return 0;
}
```
这个程序可以实现定义指针数组,使其指向字符串常量,然后进行排序,最终输出排序后的字符串常量。