在主函数中输入6个字符串,调用另一个函数func对他们按从小到大的顺序排序,然后输出这已经排好序的字符串。\n要求使用指针数组进行处理。
时间: 2023-04-16 20:05:31 浏览: 195
字符串的操作,输入以字符串,然后排序
好的,以下是代码示例:
```c
#include <stdio.h>
#include <string.h>
void func(char **str, int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(str[i], str[j]) > 0) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
}
int main() {
char *str[6];
int i;
printf("请输入6个字符串:\n");
for (i = 0; i < 6; i++) {
str[i] = (char *)malloc(sizeof(char) * 100);
scanf("%s", str[i]);
}
func(str, 6);
printf("排序后的字符串为:\n");
for (i = 0; i < 6; i++) {
printf("%s\n", str[i]);
}
return 0;
}
```
在这个示例中,我们定义了一个指针数组 `char *str[6]`,用于存储输入的6个字符串。在主函数中,我们使用 `malloc` 函数为每个字符串分配了一段内存空间,以便后续的排序操作。然后,我们调用了 `func` 函数,将指针数组作为参数传递给它,进行字符串排序。排序完成后,我们再次遍历指针数组,输出已经排好序的字符串。
在 `func` 函数中,我们使用了冒泡排序的算法,对字符串进行从小到大的排序。需要注意的是,我们在比较字符串大小时,使用了 `strcmp` 函数,而不是直接使用 `<` 或 `>` 运算符。这是因为字符串是以字符数组的形式存储的,直接使用运算符比较大小会出现错误。
希望这个示例能够帮助你理解如何使用指针数组进行字符串排序。
阅读全文