• 语法基础(字符串)



    作者:进击攻城狮
    个人主页:欢迎访问我的主页
    首发时间:2022年8月28日星期日
    订阅专栏:刷题
    个人信条:星光不问赶路人,岁月不负有心人。
    如果文章有错误,欢迎在评论区指正。
    🎉 支持我:点赞👍+收藏⭐️+留言📝


    768. 忽略大小写比较字符串大小

    一般我们用 strcmpstrcmp 可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 ASCII 码值大小比较),直到出现不同的字符或遇到 \0 为止。

    如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。

    但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如 Hellohello 在忽略字母大小写时是相等的。

    请写一个程序,实现对两个字符串进行忽略字母大小写的大小比较。

    输入格式

    输入为两行,每行一个字符串,共两个字符串。注意字符串中可能包含空格。

    数据保证每个字符串的长度都不超过 8080。

    输出格式

    如果第一个字符串比第二个字符串小,输出一个字符 <

    如果第一个字符串比第二个字符串大,输出一个字符 >

    如果两个字符串相等,输出一个字符 =

    输入样例:
    Hello
    hello
    
    • 1
    • 2
    输出样例:
    =
    
    • 1
    #include
    #include
    #include
    using  namespace std;
    int main(){
        string s1,s2;
        getline(cin,s1);
        getline(cin,s2);
        int sum=0;
        int m=s1.size()>s2.size()?s1.size():s2.size();
        for(int i=0;i<m;i++){
            if(s1[i] >= 'a' && s1[i] <= 'z')s1[i] -= 32;
            if(s2[i] >= 'a' && s2[i] <= 'z') s2[i] -= 32;
            if(s1[i]==s2[i]){
                sum++;
            }
            else{
                if(s1[i]<s2[i]){
                    cout<<"<";break;
                }else
                cout<<">";break;
            }
            
        }
        if(sum==m)
        cout<<"=";
      return 0;
     
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    766. 去掉多余的空格

    输入一个字符串,字符串中可能包含多个连续的空格,请将多余的空格去掉,只留下一个空格。

    输入格式

    共一行,包含一个字符串。

    输出格式

    输出去掉多余空格后的字符串,占一行。

    数据范围

    输入字符串的长度不超过 200200。
    保证输入字符串的开头和结尾没有空格。

    输入样例:
    Hello      world.This is    c language.
    
    • 1
    输出样例:
    Hello world.This is c language.
    
    • 1
    #include
    #include
    using namespace std;
    int main(){
        string s2;
        while(cin>>s2){
        cout<<s2<<" ";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    767. 信息加密

    在传输信息的过程中,为了保证信息的安全,我们需要对原信息进行加密处理,形成加密信息,从而使得信息内容不会被监听者窃取。

    现在给定一个字符串,对其进行加密处理。

    加密的规则如下:

    1. 字符串中的小写字母,aa 加密为 bb,bb 加密为 cc,…,yy 加密为 zz,zz 加密为 aa。
    2. 字符串中的大写字母,AA 加密为 BB,BB 加密为 CC,…,YY 加密为 ZZ,ZZ 加密为 AA。
    3. 字符串中的其他字符,不作处理。

    请你输出加密后的字符串。

    输入格式

    共一行,包含一个字符串。注意字符串中可能包含空格。

    输出格式

    输出加密后的字符串。

    数据范围

    输入字符串的长度不超过 100100。

    输入样例:
    Hello! How are you!
    
    • 1
    输出样例:
    Ifmmp! Ipx bsf zpv!
    
    • 1
    #include
    #include
    using namespace std;
    int main(){
        char str[101];
        fgets(str,101,stdin);
        for(char &c:str)
        if(c>='a'&&c<='z')
        c=(c-'a'+1)%26+'a';
        else
        if(c>='A'&&c<='Z')
        c=(c-'A'+1)%26+'A';
        
        cout<<str;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    764. 输出字符串

    给定一个字符串 aa,请你按照下面的要求输出字符串 bb。

    给定字符串 aa 的第一个字符的 ASCII 值加第二个字符的 ASCII 值,得到 bb 的第一个字符;

    给定字符串 aa 的第二个字符的 ASCII 值加第三个字符的 ASCII 值,得到 bb 的第二个字符;

    给定字符串 aa 的倒数第二个字符的 ASCII 值加最后一个字符的 ASCII 值,得到 bb 的倒数第二个字符;

    给定字符串 aa 的最后一个字符的 ASCII 值加第一个字符的 ASCII 值,得到 bb 的最后一个字符。

    输入格式

    输入共一行,包含字符串 aa。注意字符串中可能包含空格。

    数据保证字符串内的字符的 ASCII 值均不超过 6363。

    输出格式

    输出共一行,包含字符串 bb。

    数据范围

    2≤a的长度≤1002≤a的长度≤100

    输入样例:
    1 2 3
    
    • 1
    输出样例:
    QRRSd
    
    • 1
    #include
    #include
    using namespace std;
    int main(){
        string s;
        getline(cin,s);
        char c=s[0];
      
        for(int i=0;i<s.length();i++){
            if(i==s.size()-1)
            s[i]+=c;
            else
            if(i<s.size()-1)
            s[i]+=s[i+1];
           
           
        }
        cout<<s<<endl;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    docker离线安装并导入镜像
    Unity Shader - 兰伯特漫反射
    【QT+QGIS跨平台编译】之七十二:【QGIS_Analysis跨平台编译】—【qgis_analysis.h生成】
    Vue 3 基础(二)基础 1
    Java基础知识面试题(2022年最新版,持续更新...)整理
    2023年:哪些Trello的替代品值得关注?
    Docker 数据存储及持久化应用
    常用网络接口自动化测试框架应用
    Cesium加载geoserver发布的arcgis切片 4326坐标系
    面试官:用Java如何设计阻塞队列,再说说ArrayBlocking和LinkedBlocking
  • 原文地址:https://blog.csdn.net/yi_chen_c/article/details/126571677