点击打开链接通讯录中会按姓名排序联系人,这是通过冒泡排序来解决这个问题。(这是人生第一次写博客,有错误的地方请指正,谢谢
。

void listbyname()//按姓名排序,冒泡排序
{
int i, j;
struct person temp;//person是之前定义的结构体
for(i=0;i<num-1;i++)//num为通讯录中联系人的个数
{
for (j = 0; j < num - 1 - i; j++)
{
if (strcmp(per[j].name, per[j + 1].name) > 0)// strcmp为字符串比较(头文件为<string.h>)
{
temp = per[j];
per[j] = per[j + 1];
per[j + 1] = temp;
}
}
}
}
补充:
strcmp为字符串比较,形式为strcmp(字符串1,字符串2)。
比较规则:
两个字符串,从左向右逐个字符比较(按ASCII值大小比较),直到字符串比较完或遇见'\0'为止,若全部相等,则输出0。若不相等,则以第一个不相等的字符为准。且英文字符,按照在ASCII表中出现的先后顺序,所以可以实现姓名排序。
返回值:
1.若字符串都相等,则输出0.
2.若字符串1>字符串2,则输出一个正整数.
3.若字符串1<字符串2,则输出一个负整数.