问题描述:将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;
}
}
运行结果:
程序说明:
定义二维字符数组时必须指定列长度,该长度要大于最长的字符串的有效长度,由于各个字符的长度一般并不相同,会造成内存单元的浪费。而指针数组并不存放字符串,仅仅用数组元素指向各个字符串,就没有类似的问题。
程序参数:
- 输出大小: 149.91015625 KiB
- 编译时间: 0.33s