zoukankan      html  css  js  c++  java
  • 基础练习 字符串对比

    问题描述
      给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
      1:两个字符串长度不等。比如 Beijing 和 Hebei
      2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
      3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
      4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
      编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。
    输入格式
      包括两行,每行都是一个字符串
    输出格式
      仅有一个数字,表明这两个字符串的关系编号
    样例输入
    BEIjing
    beiJing 
    
    样例输出
    3
     1 /*
     2 2020年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 样例输入
    16 BEIjing
    17 beiJing 
    18 样例输出
    19 3 
    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>
    37 using namespace std;
    38 
    39 int main()
    40 {
    41     string str1,str2;
    42     while(cin >> str1 >> str2)
    43     {
    44         int len1 = str1.length();
    45         int len2 = str2.length();
    46         char ch1,ch2;
    47         int flag = 1;
    48         int f = 0;
    49         int ff = 0;
    50         
    51         if(len1 != len2)
    52         {
    53             f = 1;
    54             cout << '1' << endl;
    55         }
    56         else
    57         {
    58             for(int i = 0; i < len1 ; i ++)
    59             {
    60                 ch1 = tolower(str1[i]);
    61                 ch2 = tolower(str2[i]);
    62                 if(str1[i] != str2[i])
    63                 {
    64                     flag = 0; // 不为情况3 
    65                     if(ch1 != ch2)
    66                     {
    67                         cout << '4' << endl;
    68                         ff = 1; //为情况四 
    69                         break;
    70                      } 
    71                  } 
    72             }
    73         
    74         }
    75         if(flag == 1 && f == 0 && ff ==0)
    76         cout << '2' << endl;
    77         else if(flag ==0 && f == 0 && ff ==0)
    78         cout << '3' << endl;
    79     }
    80     return 0;
    81 }

    本题代码自己写的比较烂,希望大佬指正。

    查了个关于字母大小写的方法,汇总如下:

     1 /*
     2 2020年3月25日15:39:24
     3 在做字符串类型的题目是经常会遇到大写小小字母的问题
     4 在网上找了几种方法
     5 汇总如下 
     6 */
     7 
     8 #include<iostream>
     9 #include<ctype.h>
    10 using namespace std;
    11 
    12 char upChar(char c)
    13 {
    14     return (char)(c - ('a' - 'A'));
    15 }
    16 char downChar(char c)
    17 {
    18     return (char)(c + ('a' - 'A'));
    19 }
    20 
    21 int main()
    22 {
    23     /*方法一: 
    24     使用C语言提供的函数:toupper(),tolower()
    25     使用这两个函数需要引入头文件:#include<ctype.h>
    26     */
    27     char c = 'A';
    28     char b = 'a';
    29     printf("%c
    ",toupper(b));
    30     printf("%c
    ",tolower(c));
    31     
    32     /*方法二: 
    33     自己编写转换函数:
    34     因为大小写之间的ASCII码值的差值是固定的,因此可以使用‘a’-‘A’来获取差值
    35     */
    36     cout << upChar(b) << endl;
    37     cout << downChar(c) << endl;
    38     
    39     return 0;
    40 }
  • 相关阅读:
    山东第一届省赛1001 Phone Number(字典树)
    HD2222 Keywords Search(AC自动机入门题)
    POJ 1947Rebuilding Roads(树形DP + 01背包)
    zoj 3946 Highway Project(最短路 + 优先队列)
    HDU5672String(尺标法)
    HDU5671Matrix(矩阵行列交换)
    HDU5670Machine(抽象进制)
    用户体验评价
    团队冲刺第二阶段-6
    第十四周学习进度
  • 原文地址:https://www.cnblogs.com/wlyperfect/p/12566981.html
Copyright © 2011-2022 走看看