通过指针对多个字符串排序
程序要求:有一个二维char数组,编写一个函数,对这个二维char数组进行从小到大排序(strcmp函数),最后将其打印。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
void sort(char *name[], int n), print(char *name[], int n);
char *name[] = {"Follow me", "BASIC", "Great Wall", "MissFortune", "Computer"};
int n = 5;
sort(name, n);
print(name, n);
}
void sort(char *name[], int n)
{
char *temp;
int i, j, k;
for (i = 0; i < n - 1; i++)
{
k = i;
for (j = i; j < n; j++)
if (strcmp(name[k], name[j]) > 0)
k = j;
if (k != i)
{
temp = name[i];
name[i] = name[k];
name[k] = temp;
}
}
}
void print(char *name[],int n)
{
int i = 0;
for (i = 0; i < n;i++)
printf("%s\n", *(name + i));
}
运行结果
BASIC
Computer
Follow me
Great Wall
MissFortune
算法分析

肥柴代码之家 2020-06-24