通过冒泡排序解决通讯录中按姓名排序问题

本文介绍了一种使用C语言中的冒泡排序算法按姓名字母顺序排列联系人的方法。该算法利用了strcmp函数来比较字符串,并根据ASCII值进行排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击打开链接通讯录中会按姓名排序联系人,这是通过冒泡排序来解决这个问题。(这是人生第一次写博客,有错误的地方请指正,谢谢 大笑
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,则输出一个负整数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值