编写函数指针函数为参数对字符串排序char*name[]=zhabgsan,lisi,wangwu,zhaoliu,weiqi 1实现字符串交换
时间: 2024-11-27 14:11:31 浏览: 3
python实现字符串和字典的转换
5星 · 资源好评率100%
在C语言中,你可以使用函数指针作为比较函数来实现字符串数组的排序。例如,如果你想按照字典序对`name[]`数组中的字符串进行升序排列,可以编写一个用于比较两个字符串的函数,然后传递给`qsort()`函数。
首先,我们创建一个函数,比如叫做`strcmpEx`,它接受两个`char*`类型的参数,并返回它们的比较结果:
```c
int strcmpEx(const char *s1, const char *s2) {
return strcmp(s1, s2);
}
```
这里使用了标准库中的`strcmp()`函数来进行字符串比较。
然后,假设`zhabgsan`等字符串已经初始化,你可以像下面这样排序这个数组:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 假设已知字符串数组
const char *name[] = {"zhabgsan", "lisi", "wangwu", "zhaoliu", "weiqi"};
// 使用函数指针作为比较函数
void sortStringsByFunction(char** array, int count, int (*compare)(const void*, const void*)) {
qsort(array, count, sizeof(char*), compare);
}
int main() {
int length = sizeof(name)/sizeof(name[0]); // 获取数组长度
sortStringsByFunction(name, length, strcmpEx); // 调用排序函数
// 输出排序后的字符串
for (int i = 0; i < length; i++) {
printf("%s\n", name[i]);
}
return 0;
}
```
在这个例子中,`sortStringsByFunction`函数接收一个指向字符串指针的数组、数组长度以及比较函数`compare`。`qsort()`函数会根据提供的比较函数对数组元素进行排序。
阅读全文