输入3个字符串,按由小到大的顺序排列。

本文介绍了一个简单的C语言程序,该程序通过用户输入三个字符串,并按字典顺序进行排序。使用了strcmp函数来比较字符串并调用自定义的swap函数实现字符串交换。

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

#include<stdio.h>
#include<string.h>
int swap(char *,char *);
int main()
{
	char str1[20],str2[31],str3[20];
	gets(str1);
	gets(str2);
	gets(str3);
	if(strcmp(str1,str2)>0) swap(str1,str2);
	if(strcmp(str1,str3)>0) swap(str1,str3);
	if(strcmp(str2,str3)>0) swap(str2,str3);
	printf("%s\n%s\n%s\n",str1,str2,str3);	
} 
int swap(char *p1,char *p2)
{
	char p[40];
	strcpy(p,p1);
	strcpy(p1,p2);
	strcpy(p2,p);
	
}

### 实现字符串排序 为了实现对三个字符串按字典序从小到大排序并输出的功能,可以使用 C 语言中的标准库函数 `strcmp()` 和 `strcpy()` 来完成这一任务。`strcmp()` 函数用于比较两个字符串的内容;如果第一个小于第二个,则返回负;相等则返回零;大于则返回正[^1]。 下面是一个完整的解决方案: #### 完整代码示例 ```c #include <stdio.h> #include <string.h> int main() { char str1[100], str2[100], str3[100]; printf("请输入三个字符串:\n"); gets(str1); // 获取用户输入的第一个字符串 gets(str2); // 获取用户输入的第二个字符串 gets(str3); // 获取用户输入的第三个字符串 // 创建临时变量用于交换 char temp[100]; // 比较并排序前两个字符串 if (strcmp(str1, str2) > 0) { strcpy(temp, str1); strcpy(str1, str2); strcpy(str2, temp); } // 将最小的一个与第三个做对比 if (strcmp(str1, str3) > 0) { strcpy(temp, str1); strcpy(str1, str3); strcpy(str3, temp); } // 再次确认中间值是否正确 if (strcmp(str2, str3) > 0) { strcpy(temp, str2); strcpy(str2, str3); strcpy(str3, temp); } // 输出已排序的结果 printf("按字典顺序排列后的结果为:\n%s\n%s\n%s\n", str1, str2, str3); return 0; } ``` 此程序首先提示用户依次输入三个字符串,并通过 `gets()` 函数读取这些字符串。接着利用简单的冒泡排序算法逻辑,借助 `strcmp()` 进行两两之间的比较以及必要时调用 `strcpy()` 来互换位置,最终实现了三者间的升序排列。 需要注意的是,在实际开发环境中不推荐使用 `gets()` 因为其存在缓冲区溢出的风险,建议改用更安全的方法如 `fgets()` 或限定长度的方式来获取输入[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值