代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int main11()
{
//二级指针做输入——第1种内存模型——指针数组.
char* Array[] = { "aa","ccc","bbbb","11111" };
//指针数组——数组元素是指针.
int i = 0, j = 0;
int num = 0;
char* tmp = NULL;
//数组元素个数
num = sizeof(Array) / sizeof(Array[0]);
//打印
printf("排序前:\n");
for (i = 0; i < num; i++)
{
/*printf("%s\n", Array[i]);*/
printf("%s\n", *(Array + i));
}
printf("\n");
//排序(选择排序)
for (i = 0; i < num; i++)
{
for (j = i + 1; j < num; j++)
{
if (strcmp(Array[i], Array[j]) > 0)
{
tmp = Array[i];
Array[i] = Array[j];
Array[j] = tmp;
}
}
}
printf("排序后:\n");
for (i = 0; i < num; i++)
{
/*printf("%s\n", Array[i]);*/
printf("%s\n", *(Array + i));
}
printf("\n");
system("pause");
return 0;
}
//打印接口封装
void printArray1(char** p1, int* num)
{
int i = 0;
for (i = 0; i < *num; i++)
{
/*printf("%s\n", *(p1 + i));*/
printf("%s\n", p1[i]);
}
}
//排序接口封装(指针做函数参数)
void sortArray1(char** p1, int* num)
{
int i = 0, j = 0;
char* tmp = NULL;
for (i = 0; i < *num; i++)
{
for (j = i + 1; j < *num; j++)
{
if (strcmp(p1[i], p1[j]) > 0)
{
tmp = p1[i];
p1[i] = p1[j];
p1[j] = tmp;
}
}
}
}
int main()
{
//二级指针做输入——第1种内存模型——指针数组.
char* Array[] = { "aa","ccc","bbbb","11111" };
int num = 0;
//数组元素个数
num = sizeof(Array) / sizeof(Array[0]);
printf("排序前:\n");
printArray1(Array, &num);
printf("排序后:\n");
sortArray1(Array, &num);
printArray1(Array, &num);
printf("\n");
system("pause");
return 0;
}