c语言编写函数采用冒泡法,利用指针数组对字符串排序. char *name[]={"zhangsan","lisi","wangwu","zhaoliu","weiqi"};
时间: 2024-11-04 08:09:32 浏览: 8
form表单传递数组数据、php脚本接收的实例
在C语言中,你可以使用冒泡排序算法对字符串数组按照字典序进行排序。这里是一个简单的示例,展示了如何使用指针数组并结合冒泡排序的思想:
```c
#include <stdio.h>
#include <string.h>
// 冒泡排序函数,接受指向字符数组的指针作为参数
void bubbleSort(char **arr, int n) {
char temp[50]; // 存储临时字符串
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
// 比较两个相邻元素,如果前一个大于后一个,则交换
if (strcmp(arr[j], arr[j + 1]) > 0) {
strcpy(temp, arr[j]); // 备份当前元素到temp
strcpy(arr[j], arr[j + 1]); // 将后一个元素放到前面
strcpy(arr[j + 1], temp); // 将备份的元素放回原位置
}
}
}
}
int main() {
char *name[] = {"zhangsan", "lisi", "wangwu", "zhaoliu", "weiqi"};
int n = sizeof(name) / sizeof(name[0]);
printf("Before sorting:\n");
for (int i = 0; i < n; i++) {
printf("%s ", name[i]);
}
bubbleSort(name, n);
printf("\nAfter sorting:\n");
for (int i = 0; i < n; i++) {
printf("%s ", name[i]);
}
return 0;
}
```
在这个例子中,`bubbleSort`函数通过比较`arr[j]`和`arr[j+1]`的ASCII值来判断顺序,并通过`strcpy`操作完成交换。运行这个程序,你会看到原始字符串数组按字母顺序排列的结果。
阅读全文