3 9-9 字符串排序-用指向指针的指针实现 分数 20 全屏浏览题目 切换布局 作者 吴敏华 单位 首都师范大学 在主函数中输入8个字符串。用另一函数对它们排序。然后在主函数输出这8个已排好序的字符串。要求用指向指针的指针实现。 输入格式: 输入共8行,表示8个字符串。 输出格式: 输出也是8行,表示8个排好序的字符串。用C语言实现
时间: 2023-12-14 16:37:32 浏览: 99
以下是实现代码:
```c
#include <stdio.h>
#include <string.h>
void sortstr(char **p,int n)
{
int i,j,k;
char *temp;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(strcmp(*(p+k),*(p+j))>0)
{
k=j;
}
}
if(k!=i)
{
temp=*(p+i);
*(p+i)=*(p+k);
*(p+k)=temp;
}
}
}
int main()
{
int i;
char *str[8],s[10];
for(i=0;i<8;i++)
{
scanf("%s",s);
str[i]=(char*)malloc(strlen(s)+1);
strcpy(str[i],s);
}
sortstr(str,8);
for(i=0;i<8;i++)
{
printf("%s\n",str[i]);
free(str[i]);
}
return 0;
}
```
思路解析:
1. 声明一个指向指针的指针 char **p ,并开辟 8 个指向字符数组的指针。
2. 在主函数中输入 8 个字符串,将其分别存储在指向字符数组的指针中。
3. 调用排序函数 sortstr 对这 8 个字符串进行排序,使用选择排序的方法。
4. 在主函数中输出排好序的 8 个字符串,并释放内存。
阅读全文