#include <stdio.h>
#include <string.h>
void sort(int n,char a[][10])
{
int i,j;
char t[10];
//冒号排序
for(i=0;i<n-1 ;i++)
{
for(j=0;j<n-1-i ;j++)
{
if(strcmp(a[j],a[j+1]) >0 )//若比较值大于0,交换两个数
{
strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
}
}
}
void print(int n,char a[][10])
{
int i;
//打印字符串
for(i=0;i<n;i++)
{
printf("%s ",a[i]);
}
printf("\n");
}
int main()
{
//定义字符串数组,获取字符串的个数
char a[][10]={"苏B67890", "苏A12345", "苏C98765", "苏B43210"};
int n=sizeof(a)/sizeof(a[0]);
print(n,a);
sort(n,a);
print(n,a);
return 0;
}
主要思路是对一个二维字符数组(即字符串数组)进行排序和打印。
-
初始化字符串数组:首先定义了一个二维字符数组
a
,存储了四个以"苏"开头的车牌号字符串。 -
计算数组长度:通过
sizeof(a)/sizeof(a[0])
计算数组的长度(即元素的数量),这里是4。 -
打印数组:通过
print
函数,遍历数组并打印每个字符串,展示排序前的车牌号列表。 -
排序数组:
sort
函数使用冒泡排序算法,通过strcmp
函数比较字符串,如果前一个字符串大于后一个,则交换它们的位置,直到整个数组按字典序排列。 -
再次打印数组:排序完成后,再次调用
print
函数,展示排序后的车牌号列表。