实现一个对二维字符数组进行排序的函数,字符串的输入输出在主函数里实现。

实现一个对二维字符数组进行排序的函数,字符串的输入输出在主函数里实现。

#include <stdio.h>
#include <string.h>
 
void sort(char *name[],int n)
{
	char *tmp = NULL;//空 
    int i,j,k;
	for(i = 0; i < n - 1; i++)
	{
		k = i;
		for(j = i + 1; j < n; j++)
		{
			if(strcmp(name[k],name[j]) > 0)
				k = j;
		}
        if(k != i)
		{
			tmp = name[i];
			name[i] = name[k];
			name[k] = tmp;
		}
    }
}
 
void print(char *name[],int n)//因为n是多变的
{
    int i;
	for(i = 0; i < n; i++)
	{
        printf("%s\n",name[i]);
	}
}
 
int main(void)
{
	
	 int n=5,i,j;//n取决于你想比较多少
    char **str;
    char s[100];
    str=(char**)malloc(sizeof(char*)*n);
    for(i=0;i<n;i++)
    {
        str[i]=(char*)malloc(sizeof(char)*100);
        printf("请输入第%d个字符串\n",i+1);
        gets(str[i]);
} 
printf("排列后的字符串:\n") ;
	sort(str,n);
	print(str,n);

	return 0;

} 

n值可变

展开阅读全文
©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读