利用指针对字符串数组进行排序

这里是引用利用指针数组对形参所指字符串数组中的字符串按由长到短的顺序排序 ,并输出结果。

要求:

1、求字符串长度自定义函数实现;

2、排序用自定义函数实现;

3、输出结果用自定义函数实现;

4、不允许调用标准库中的字符串处理函数、排序函数;

5、根据给定的函数原型实例函数体代码。

#include 
#define N 5

int udf_strlen(char *s)
{
	char *p=s;
	while(*(p++)!='\0');
	return (p-s-1);
}

void udf_sort(char *ss[])
{
	int i,j;
	char *temp;
	for(i=0;i<N-1;i++)
	{
		for(j=i;j>=0;j--)
		{
			if(udf_strlen(*(ss+j))<udf_strlen(*(ss+j+1)))
			{
				temp=*(ss+j);
				*(ss+j)=*(ss+j+1);
				*(ss+j+1)=temp;				
			}
		}
	}
}

void udf_print(char **sss)
{
	char **p=sss;
	while(p-sss<N)
	{
		printf("%s ",*p);
		p++;
	}
}

int main()

{
    char *ch[N]={"Red","Green","Blue","Yellow","Black"};

    char **cc=ch;   

    int i;

    printf("排序前的字符串为:\n");

	udf_print(cc);

	udf_sort(cc);//排序

    printf("\n排序后的字符串为:\n");

    udf_print(cc);

    return 0;

}

你可能感兴趣的:(笔记,c语言,c++,排序算法)