#include <stdio.h>
#include <string.h>
int MySortByStrlen_Func(char **pStr,int size)
{
if(NULL == pStr)
{
printf("null error!\n");
return -1;
}
if(size <= 0)
{
printf("size error!\n");
return -2;
}
int i,j;
//控制趟数
for(i = 0; i < size-1; i++)
{
//控制每一趟中需要比较的次数
for(j = 0; j < size-1-i; j++)
{
//按照长度
if(strlen(*(pStr+j)) > strlen(*(pStr+j+1)))
{
//交换指向(并非指针所指向空间的内容)
char *pTemp = NULL;
pTemp = *(pStr+j);
*(pStr+j) = *(pStr+j+1);
*(pStr+j+1) = pTemp;
}
}
}
return 0;
}
int main(int argc, const char *argv[])
{
//定义指针数组,用来5个指针
char *str[5] = {"wangjia","xixix","haha","22081","gaga"};
printf("排序之前:\n");
int i;
for(i=0;i<5;i++)
{
puts(str[i]);
}
int ret = MySortByStrlen_Func(str,5);
if(ret < 0)
{
return -1;
}
printf("排序OK!\n");
printf("排序之后:\n");
for(i=0;i<5;i++)
{
puts(str[i]);
}
return 0;
}