UDP广播协议叫吃饭


私信TA

用户名:Mustenaka

访问量:134658

签 名:

个人博客www.mustenaka.cn

等  级
排  名 12
经  验 23698
参赛次数 8
文章发表 196
年  龄 3
在职情况 学生
学  校 Sky_box
专  业 NE

  自我简介:

欢迎光临我的博客www.mustenaka.cn,Python,C#,U3D,C/C++开发合作可以找我

解题思路:

参考流程图。

过程讲解:

  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分

9 人评分

  评论区