基础练习字符串对⽐
问题描述
给定两个仅由⼤写字母或⼩写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之⼀:
1:两个字符串长度不等。⽐如 Beijing 和 Hebei
2:两个字符串不仅长度相等,⽽且相应位置上的字符完全⼀致(区分⼤⼩写),⽐如 Beijing 和 Beijing
3:两个字符串长度相等,相应位置上的字符仅在不区分⼤⼩写的前提下才能达到完全⼀致(也就是说,它并不满⾜情况2)。⽐如beijing 和 BEIjing
4:两个字符串长度相等,但是即使是不区分⼤⼩写也不能使这两个字符串⼀致。⽐如 Beijing 和 Nanjing
编程判断输⼊的两个字符串之间的关系属于这四类中的哪⼀类,给出所属的类的编号。
输⼊格式
包括两⾏,每⾏都是⼀个字符串
输出格式
仅有⼀个数字,表明这两个字符串的关系编号
样例输⼊
BEIjing
beiJing
样例输出
3
1/*
22020年3⽉25⽇15:22:12
3蓝桥杯习题
4问题描述
5 给定两个仅由⼤写字母或⼩写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之⼀:
6 1:两个字符串长度不等。⽐如 Beijing 和 Hebei
7 2:两个字符串不仅长度相等,⽽且相应位置上的字符完全⼀致(区分⼤⼩写),⽐如 Beijing 和 Beijing
8 3:两个字符串长度相等,相应位置上的字符仅在不区分⼤⼩写的前提下才能达到完全⼀致(也就是说,它并不满⾜情况2)。⽐如 beijing 和 BEIjing
9 4:两个字符串长度相等,但是即使是不区分⼤⼩写也不能使这两个字符串⼀致。⽐如 Beijing 和 Nanjing
10 编程判断输⼊的两个字符串之间的关系属于这四类中的哪⼀类,给出所属的类的编号。
11输⼊格式
12 包括两⾏,每⾏都是⼀个字符串
13输出格式
14 仅有⼀个数字,表明这两个字符串的关系编号
15样例输⼊
16BEIjing
17beiJing
18样例输出
193
20*/
21
22/*
23分析:
24长度是否相等:
25 1.不等 ———————————— 情况1
26 2.相等
27 1)对应字符完全⼀致————— 情况2
28 2)不区分⼤⼩写
29 a.完全⼀致 ——————— 情况3
30 b.不⼀致 ————————情况4
31*/
32
33 #include<iostream>
34 #include<string>
35 #include<cstring>
36 #include<ctype.h>
37using namespace std;
38
39int main()
40 {
41string str1,str2;
42while(cin >> str1 >> str2)
43 {
44int len1 = str1.length();
45int len2 = str2.length();
46char ch1,ch2;
47int flag = 1;
48int f = 0;
49int ff = 0;
50
51if(len1 != len2)
52 {
53 f = 1;
54 cout << '1' << endl;
55 }
56else
57 {
58for(int i = 0; i < len1 ; i ++)
59 {
60 ch1 = tolower(str1[i]);
61 ch2 = tolower(str2[i]);
62if(str1[i] != str2[i])
63 {
64 flag = 0; // 不为情况3
65if(ch1 != ch2)
66 {
67 cout << '4' << endl;
68 ff = 1; //为情况四
69break;
70 }
71 }
72 }
73
74 }
75if(flag == 1 && f == 0 && ff ==0)
76 cout << '2' << endl;
77else if(flag ==0 && f == 0 && ff ==0)
78 cout << '3' << endl;
79 }
80return0;
81 }
本题代码⾃⼰写的⽐较烂,希望⼤佬指正。
查了个关于字母⼤⼩写的⽅法,汇总如下:
1/*
22020年3⽉25⽇15:39:24
3在做字符串类型的题⽬是经常会遇到⼤写⼩⼩字母的问题
4在⽹上了⼏种⽅法
5汇总如下
6*/
7
8 #include<iostream>
9 #include<ctype.h>
10using namespace std;
11
12char upChar(char c)
13 {
14return (char)(c - ('a' - 'A'));
15 }
16char downChar(char c)
17 {
18return (char)(c + ('a' - 'A'));
19 }
20
21int main()
22 {
23/*⽅法⼀:
字符串长度比较24使⽤C语⾔提供的函数:toupper(),tolower()
25使⽤这两个函数需要引⼊头⽂件:#include<ctype.h>
26*/
27char c = 'A';
28char b = 'a';
29 printf("%c\n",toupper(b));
30 printf("%c\n",tolower(c));
31
32/*⽅法⼆:
33⾃⼰编写转换函数:
34因为⼤⼩写之间的ASCII码值的差值是固定的,因此可以使⽤‘a’-‘A’来获取差值35*/
36 cout << upChar(b) << endl;
37 cout << downChar(c) << endl;
38
39return0;
40 }
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论