类型判断

在这里插入图片描述
类型判断
给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4种情况之一:
  1:两个字符串长度不等。比如 Beijing 和 Hebei
  2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
  3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完 全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
  4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如Beijing 和 Nanjing
写一个程序, 判断用户输入的两个字符串属于什么关系
样例输入 :
BEIjing
beiJing
样例输出 :
3

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201225105954932.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3F3ZTc3NTg1MjExMjN6eGM=,size_16,color_FFFFFF,t_70#pic_center)





```c

``#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define MAX_S 55			//当前时间四个字的位置
#define MAX_T 40			//当前时间时间的位置

int  main()

{
	/*char ch22;
	ch22 = _getch();
	printf("%d", ch22);
	while (1);*/
	system("color 1E");								// 窗口显示时间
	printf("%*s\n\n", MAX_S, "※当 前 时 间※");	//窗口显示时间
	printf("%*s", MAX_T, " ");						//为了好看
	system("date /T");								// 窗口显示时间
	printf("%*s", MAX_T, " ");						//为了好看
	system("TIME /T");								// 窗口显示时间
	char a[10], b[10];
	int c, d, t = 0, i;			//接收用户输入如  ,循环变量
	//int t1 = 0, t2 = 0, t3 = 0; //统计结果
	//用户输入
	while (1)
	{
		//计算两个字符串长度
		int i = 0;
		//判断输入,字符串长度不能大于十,如果输入十个自动补\0
		puts("请输入第一个字符串");
		int index = 0;//记录输入的下标
		while (index < 10)
		{
			char ch = _getch();
			//如果中途输入回车把最后一个字符设为\0表示字符串的结尾
			if (ch == 13)
			{
				a[index] = '\0';
				break;
			}
			//如果输入的刚好10个字符那么最后一个设为结束符
			if (index == 9)
			{
				a[index] = '\0';
				break;
			}
			//如果发现输错了 按下删除  回退
			else if (ch == '\b')
			{
				if (index > 0)
				{
					index--;  //回退的时候下标跟着退
				}
				printf("\b \b");//光标位置
			}
			else
			{
				//另外的情况 输入正确 把正确字符输入到数组中
				a[index++] = ch;
				printf("%c",ch);
			}
		}
		printf("\n");
		printf("请输入第二个字符串\n");
		//判断输入,字符串长度不能大于十,如果输入十个自动补\0

		//把下标重新设置为0
		index = 0;
		//逻辑同上 就不写了
		while (index < 10)
		{
			char ch = _getch();
			if (ch == '\r')
			{
				b[index] = '\0';
				break;
			}
			//如果输入的刚好10个字符那么最后一个设为结束符
			if (index == 9)
			{
				b[index] = '\0';
				break;
			}
			else if (ch == '\b')
			{
				if (index > 0)
				{
					index--;
				}
				printf("\b \b");
			}
			else
			{
				b[index++] = ch;
				printf("%c",ch);
			}
		}
		
		printf("\n");
		//计算两个字符串的元素个数
		c = strlen(a);
		d = strlen(b);
		printf("计算长度 字符串a的元素个数: %d\t 字符串b的元素个数:%d\n", c, d);
		printf("两个字符串比较结果为:\t ");
		//如果元素相等 返回2
		if (strcmp(a, b) == 0)
		{
			printf("2\n");
			goto flag;
		}
		//如果两个不相等 返回1
		if (c != d)
		{
			
			printf("1\n");
			goto flag;
		}
		//长度相等的情况
		else
		{
			//循环遍历一个字符串长度
			for (i = 0; i < c; i++)
			{
				//如果不区分大小写的时候 相等 返回 3
				if (a[i] == b[i] || a[i] == b[i] - 32 || a[i] == b[i] + 32)
				{
					t = 3;
					break;
				}
				else
				{
					//不相等返回4
					if (a[i] != b[i])
					{
						t = 4;
						break;
					}
				}
			}
		

		}
		//统计结果	
		if (t == 3)
			printf("3\n");
		if (t == 4)
			printf("4\n");
	flag:
		puts("还要继续玩吗???(任意键继续玩,按 n 退出)\n");
		char ch = ' ';
		ch = _getch();
		if (ch == 'n')
		{
			puts("再见");
			system("pause");
			exit(0);
		}
	}
	system("pause");
	return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define MAX_S 55			//当前时间四个字的位置
#define MAX_T 40			//当前时间时间的位置

int  main()

{
	printf("%*s\n\n", MAX_S, "※当 前 时 间※");	//窗口显示时间
	printf("%*s", MAX_T, " ");						//为了好看
	system("date /T");								// 窗口显示时间
	printf("%*s", MAX_T, " ");						//为了好看
	system("TIME /T");								// 窗口显示时间
	char a[10], b[10];
	int c, d, t = 0, i;			//接收用户输入如  ,循环变量
	//int t1 = 0, t2 = 0, t3 = 0; //统计结果
	//用户输入
	while (1)
	{
		//计算两个字符串长度
		puts("请输入第一个字符串");
		gets_s(a);
		c = strlen(a);
		puts("请输入第二个字符串");
		gets_s(b);
		d = strlen(b);
		//入股两个不相等 返回1
		if (c != d)
		{
			printf("1\n");
		}
		//长度相等的情况
		else
		{
			//循环遍历一个字符串长度
			for (i = 0; i < c; i++)
			{
				//如果元素相等 返回2
				if (a[i] == b[i])
				{
					t = 2;
				}
				//如果不区分大小写的时候 相等 返回 3
				else
					if (a[i] == b[i] || a[i] == b[i] - 32 || a[i] == b[i] + 32)
					{
						t = 3;
					}
					else
					{
						//不相等返回4
						if (a[i] != b[i])
						{
							t = 4;
							break;
						}
					}
			}

		}
		//统计结果
		if (t == 2)
			printf("2\n");
		if (t == 3)
			printf("3\n");
		if (t == 4)
			printf("4\n");

		puts("还要继续玩吗???(任意键继续玩,按 n 退出\n)");
		char ch = ' ';
		ch = _getch();
		if (ch == 'n')
		{
			puts("再见");
			system("pause");
			exit(0);
		}
	}
	system("pause");
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c语言,c++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值