【问题描述】 编写一个函数,利用指针将输入的多个字符串按长度升序排序 void StrSort(char *p[N],int n) 【输入形式】 循环输入四个字符串。每输入完一个按回车。 【输出形式】 输出排序后的四个字符串。
时间: 2024-02-12 21:03:35 浏览: 64
sort-strings:按长度对字符串数组进行排序
以下是实现该函数的代码,你可以参考一下:
```
#include <stdio.h>
#include <string.h>
void StrSort(char *p[], int n) {
int i, j;
char *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strlen(p[i]) > strlen(p[j])) {
temp = p[i];
p[i] = p[j];
p[j] = temp;
}
}
}
}
int main() {
char str[4][100];
char *p[4];
int i;
for (i = 0; i < 4; i++) {
fgets(str[i], 100, stdin);
str[i][strlen(str[i]) - 1] = '\0'; // 去掉fgets读入的换行符
p[i] = str[i];
}
StrSort(p, 4);
for (i = 0; i < 4; i++) {
printf("%s\n", p[i]);
}
return 0;
}
```
该程序中,我们使用了指针数组 `p` 来存储输入的字符串,并将其作为参数传递给 `StrSort` 函数。在 `StrSort` 函数中,我们通过比较字符串长度,将字符串按升序排序。最后,在 `main` 函数中,我们将排序后的字符串指针数组 `p` 打印出来。
阅读全文