1.题目
本实例使用指向指针的指针实现对字符串数组中的字符串排序输出,输出是按照汉字的首字母进行排序的。
2.代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//strcmp(str1,str2)
//比较 str1 和 str2 的大小,当str1>str2时,返回正数
//str1=str2时,返回0
//str1<str2时,返回负数
sort(char* strings[], int n)
{
char* temp;
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
if (strcmp(strings[i], strings[j]) > 0) //比较两个字符
{
temp = strings[i];
strings[i] = strings[j];
strings[j] = temp;
}
}
}
}
int main()
{
int n = 6;
char** p;
char* strings[] = { "赵XX","钱XX","孙XX","李XX","周xx","武XX" };
p = strings; //指针指向数组首地址
printf("排序前的数组:\n");
for (int i = 0; i < n; i++)
{
printf("%s\n", *(p + i));
}
sort(p, n); //调用排序自定义过程
printf("排序后的数组:\n");
for (int i = 0; i < n; i++) //输出排序后的元素
{
printf("%s\n", *(p + i));
}
system("pause");
return 0;
}