字符串排序--指针数组做函数参数 分数 10 作者 余贞侠 单位 成都信息工程大学 字符串排序,例如输入:banana orrange apple,则以下程序的输出结果: apple banana orrange
时间: 2024-04-29 14:22:23 浏览: 101
下面是使用指针数组作为函数参数的字符串排序的示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100 // 字符串的最大长度
#define MAX_NUM 100 // 最多字符串个数
void sort_strings(char *strings[], int n);
int main() {
char str[MAX_LEN];
char *strings[MAX_NUM];
int n = 0;
// 输入字符串
while (scanf("%s", str) != EOF && n < MAX_NUM) {
strings[n] = strdup(str);
n++;
}
// 排序
sort_strings(strings, n);
// 输出排好序的字符串
for (int i = 0; i < n; i++) {
printf("%s ", strings[i]);
free(strings[i]); // 释放内存
}
printf("\n");
return 0;
}
// 使用指针数组作为函数参数的字符串排序函数
void sort_strings(char *strings[], int n) {
char *temp;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (strcmp(strings[i], strings[j]) > 0) {
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
```
这个程序使用了一个指针数组 `strings` 来保存输入的字符串,然后把指针数组作为参数调用了排序函数 `sort_strings`。在排序函数中,我们使用了标准库函数 `strcmp` 来比较两个字符串的大小,然后交换它们的指针。最后,我们遍历排好序的指针数组,输出字符串,并释放内存。
阅读全文