3,定义指针数组,使其指向字符串常量:char * name[4]={“Follow”,,“Great”, “FORTRAN”,“Computer”},并进行排序。实际是对指针指向的排序,字符串不动! 要求:函数调用实现
时间: 2024-02-23 09:02:42 浏览: 49
以下是实现要求的代码:
```c
#include <stdio.h>
#include <string.h>
#define N 4
#define MAX_LEN 20
void sort_string_pointers(char *strings[], int n);
int main() {
char *names[N] = {"Follow", "Great", "FORTRAN", "Computer"};
printf("Before sorting:\n");
for (int i = 0; i < N; i++) {
printf("%s\n", names[i]);
}
sort_string_pointers(names, N);
printf("\nAfter sorting:\n");
for (int i = 0; i < N; i++) {
printf("%s\n", names[i]);
}
return 0;
}
void sort_string_pointers(char *strings[], int n) {
char *temp_ptr;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(strings[i], strings[j]) > 0) {
temp_ptr = strings[i];
strings[i] = strings[j];
strings[j] = temp_ptr;
}
}
}
}
```
这段代码定义了一个指针数组 `names`,其中每个元素指向一个字符串常量。然后调用函数 `sort_string_pointers` 对指针进行排序,从而实现对字符串常量的排序。函数使用了选择排序算法,根据字符串的字典序进行比较。最后,主函数打印出排序前后的数组内容。
阅读全文