定义指针数组,使其指向字符串常量:char * name[4]={“Follow”,,“Great”, “FORTRAN”,“Computer”},并进行排序。实际是对指针指向的排序,字符串不动!
时间: 2023-09-19 22:10:52 浏览: 77
用指针数组的方法将字符串排序
好的,我来给你解答这个问题。
首先,我们需要明确指针数组的定义方式,即 char * name[4],这里定义了一个长度为 4 的指针数组,每个元素都是一个指向 char 类型的指针。
其次,我们需要对指针数组进行初始化,使其指向字符串常量。可以这样写:
```
char * name[4] = {"Follow", "Great", "FORTRAN", "Computer"};
```
注意,这里的字符串常量需要使用双引号括起来,而且每个字符串常量之间需要用逗号隔开。
最后,我们需要对指针数组中的指针进行排序。由于我们只是对指针进行排序,所以字符串常量的顺序不会发生改变。可以使用 C 语言标准库中的 qsort 函数来进行排序,具体代码如下:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void * a, const void * b) {
char *pa = *(char **)a;
char *pb = *(char **)b;
return strcmp(pa, pb);
}
int main() {
char * name[4] = {"Follow", "Great", "FORTRAN", "Computer"};
int i;
qsort(name, 4, sizeof(char *), compare);
for (i = 0; i < 4; i++) {
printf("%s\n", name[i]);
}
return 0;
}
```
这里的 compare 函数用来比较两个指针指向的字符串的大小关系,然后 qsort 函数会根据比较结果对指针数组进行排序。
希望我的解答能够帮到你,如果你还有其他问题,可以继续提问哦!
阅读全文