C语言-将5个字符串从小到大排序后输出(用指针数组实现)

问题描述:将5个字符串从小到大排序后输出(用指针数组实现)

源代码:

源代码:
/将5个字符串从小到大排序后输出(用指针数组实现)/
#include<stdio.h>
#include<string.h>
void fsort(char*color[],int n);
int main(void)
{
int i;
char *pcolor[]={"red","blue","yellow","green","black"};
fsort(pcolor,5);
for(i=0;i<5;i++)
printf("%s ",pcolor[i]);
return 0;
}

void fsort(char*color[],int n)
{
    int k,j;
    char *temp;
    for(k=1;k<n;k++)
        for(j=0;j<n-k;j++)
            if(strcmp(color[j],color[j+1])>0){
                temp=color[j];
                color[j]=color[j+1];
                color[j+1]=temp;
            }
}

运行结果:

将5个字符串从小到大排序后输出(用指针数组实现)

程序说明:

定义二维字符数组时必须指定列长度,该长度要大于最长的字符串的有效长度,由于各个字符的长度一般并不相同,会造成内存单元的浪费。而指针数组并不存放字符串,仅仅用数组元素指向各个字符串,就没有类似的问题。

程序参数:

  • 输出大小: 149.91015625 KiB
  • 编译时间: 0.33s
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容