解题思路:
判断输入的三个字符的大小与判断输入三个数字的大小的方法相同。
首先需要定义三个字符变量数组str1[100],str2[100],str3[100]用来保存三个字符串,然后使用if判断句进行两两比较。
1.先将字符串数组str1[100]和str2[100]进行比较,把较小的字符串保存在数组str1[100]中,较大的保存在str2[100]中;
2.然后再将str1[100]和str3[100]进行比较,把较小的字符串保存在str1[100]中,较大保存在str3[100]中,确保str1[100]中保存的是最小的字符串;
3.最后将str2[100]和str3[100]进行比较,str2[100]中保存较小的,str3[100]保存较大的。
说明:
C语言中字符串的比较规则是 将两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止。
所用到的字符串处理函数:
strcmp函数-----字符串比较函数
其一般形式为:strcmp(字符串1,字符串2)
比较结果由函数值带回
(1)如果字符串1=字符串2,则函数值为0。
(2)如果字符串1>字符串2,则函数值为一个正整数。
(3)如果字符串1<字符串2,则函数值为一个负整数。
strcpy函数-----字符串复制函数
其一般形式为:strcpy(字符串1,字符串2)
作用是将字符串2复制到字符串1中去。
注意事项:
C语言中,对字符串进行操作时,可以使用C函数库提供的专门对字符串进行处理的函数,若要使用这些处理函数时,应当在程序开头用#include<string.h>把string.h文件包含到本文件中。
参考代码:
#include<stdio.h>
#include<string.h>
int main()
{
//定义三个字符数组用来保存三个字符串
char str1[100];
char str2[100];
char str3[100];
//定义字符数组str用来保存临时字符串
char str[100];
//从键盘接受三个字符串
gets(str1);
gets(str2);
gets(str3);
//以下if语句用来判断三个字符串的大小
if(strcmp(str1,str2)>0)
{
strcpy(str,str1);
strcpy(str1,str2);
strcpy(str2,str);
}
if(strcmp(str1,str3)>0)
{
strcpy(str,str1);
strcpy(str1,str3);
strcpy(str3,str);
}
if(strcmp(str2,str3))
{
strcpy(str,str2);
strcpy(str2,str3);
strcpy(str3,str);
}
//用puts语句输出三个字符串
puts(str1);
puts(str2);
puts(str3);
return 0;
}0.0分
7 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
照抄冒泡排序 #include <stdio.h> #include <string.h> int main() { char arr[3][100] = { 0 }, ar[100] = { 0 }; for (int i = 0; i < 3; i++) { gets(arr[i]); } for (int i = 0; i < 3; i++) { for (int j = 0; j < 3 - i - 1; j++) { if (strcmp(arr[j], arr[j + 1]) > 0) { strcpy(ar, arr[j]); strcpy(arr[j], arr[j + 1]); strcpy(arr[j + 1], ar); } } } for (int i = 0; i < 3; i++) puts(arr[i]); return 0; }