c语言编写函数采用冒泡法,利用指针数组对字符串排序. char *name[]={“zhangsan”,“lisi”,“wangwu”,“zhaoliu”,“weiqi”};不使用strcmp,strcpy
时间: 2024-11-22 19:47:18 浏览: 35
在C语言中,你可以使用字符数组来表示字符串,并通过冒泡排序算法对它们进行排序。由于题目要求不使用`strcmp`和`strcpy`,我们可以直接比较每个字符串的ASCII值来进行排序。以下是一个简单的示例,展示了如何通过指针数组对字符串进行冒泡排序:
```c
#include <stdio.h>
#include <string.h>
// 冒泡排序的辅助函数
void bubble_sort(char **arr, int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - 1 - i; ++j) {
if (*(arr + j) > *(arr + j + 1)) { // 比较当前元素和下一个元素
char *temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
char *name[] = {"zhangsan", "lisi", "wangwu", "zhaoliu", "weiqi"};
int len = sizeof(name) / sizeof(name[0]);
bubble_sort(name, len); // 对数组进行排序
printf("Sorted string array:\n");
for (int i = 0; i < len; ++i) {
printf("%s ", name[i]);
}
return 0;
}
```
在这个例子中,我们首先计算了字符串数组的长度,然后用冒泡排序算法遍历数组,如果发现前一个字符串的ASCII值大于后一个,就交换它们的位置。最后打印出排序后的数组。
阅读全文