解题思路:

参考流程图。

过程讲解:

  1. 先判断两个字符串是否等长,不等长输出1,等长进入第二步;

  2. 判断是否完全相等,完全相等则输出2,不完全相等则进入第三步;

  3. 判断是大小写区别还是字母区别,大小写区别输出3,字母区别输出4;

其中可以设置一个默认的flag标记为2,这样可以简化程序工作,当然也可以设置一个其他的默认值

D{2D{6AN46VJ$R$I3T1J~9L.png注意事项:
1.scanf和gets的区别,scanf会吞噬内存区的一个回车,而gets不会,所以其样例中会出现一个字符串后一个回车再出现字符串,切记这里使用gets的时候要注意去除后面的回车(我就是这里卡了很久)

2.可以利用函数返回值的特性。
参考代码:

#include<bits/stdc++.h>
#define max 11
using namespace std;
int select(char a[],int n,char b[],int m) {
	int flag=2;   //设置默认值flag=2 
	if(n!=m) {
		flag=1;		//如果长度不等则返回1 
		return flag;   
	} else {
		for(int i=0; i<n; i++) {
			if(a[i]!=b[i]) {
				if(a[i]>='A' && a[i]<='Z') { 		//将大小写转换,至双方全部变成小写字母 
					a[i]=a[i]+32;
				} else if(b[i]>='A' && b[i]<='Z') {
					b[i]=b[i]+32;
				}

				if(a[i]==b[i]) {		//变成小写字母之后如果两个字符串任然相等则返回3 
					flag=3;
					return flag;
				} else if(a[i]!=b[i]) {	//变成小写字母之后如果两个字符 -- 
					flag=4;				//串任然不相等则说明字母不同,此时返回4 
					return flag;
				}
			}
		}
	}
	return flag;		//上面一切条件都不满足,则说明两字符串完全相等,返回默认值2 
}


int main() {
	char a[max],b[max];
	int n,m;
	scanf("%s%s",a,b);	//可以用这样的输入直接让sacnf吃掉那个回车 
	n=strlen(a);
	m=strlen(b);
	cout<<select(a,n,b,m)<<endl;	//利用返回值直接输出 
	return 0;
}


点赞(0)
 

0.0分

6 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 3 条评论

羊驼妹妹 2年前 回复TA
代码有问题吧
bfyx020129 3年前 回复TA
@bfyx020129 用string和 if else硬刚就完了
bfyx020129 3年前 回复TA
#include <iostream>
#include <string>
using namespace std;
int main()
{
	string str1, str2;
	while (cin >> str1 >> str2)
	{
		if (str1.length() != str2.length())
		{
			cout << 1;
		}
		else
		{
			if (str1 == str2)//这里可以用str1.compare(str2)替换 
			{
				cout << 2;
			}
			else
			{
				for (int i = 0; i < str1.length(); ++i)//把str1和str2字符串里面的每一个元素都转换成小写字母 
				{
					if (str1[i] >= 'A' && str1[i] <= 'Z')
						str1[i] = str1[i] + 32;

					if (str2[i] >= 'A' && str2[i] <= 'Z')
						str2[i] = str2[i] + 32;

				}
				if (str1 == str2)
				{
					cout << 3;
				}
				else
				{
					cout << 4;