1 条题解

  • 0
    @ 2025-8-24 21:07:24

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar alvis
    那些未竟的旅途

    搬运于2025-08-24 21:07:23,当前版本为作者最后更新于2021-07-04 08:55:48,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    题意

    给定一个字符串,输出两相邻的字符 ACSII\text{ACSII} 码之和,并规定首字符与末字符相邻。

    小知识

    对于字符串类的问题,我们可以使用 string\text{string} 来解决问题。

    求一个 string\text{string} 类型 的字符串长度:

    string s = "12313212";
    int l = s.length();
    cout << l;
    

    上面程序的输出结果是:88

    另外,c++\text{c++} 对于 ACSII\text{ACSII} 码的处理,可以将两个字符直接相加,所得结果即为一个 ACSII\text{ACSII} 码为原两字符 ACSII\text{ACSII} 码的和的字符。

    其次,string\text{string} 类型的字符串可以直接加一个字符:

    string s = "123132";
    s += s[0];
    for(int i = 0;i < s.length();i ++){
    	cout << s[i];
    }
    

    上述代码的结果为:12313211231321

    即将所加的字符添加到原字符串的末尾

    代码

    #include <iostream>
    #include <string>
    using namespace std;
    
    string a, s;
    
    int main(){
        cin >> a;
        //求字符串长度
        int l = a.length();
        //将第一个字符添加到末尾,便于处理
        a += a[0];
        //求得目标字符串
        for(int i = 0;i < l;i ++ ){
            s[i] = a[i] + a[i+1];
        }
        //输出
        for(int i = 0;i < l;i ++) {
            cout << s[i];
        }
        return 0;
    }
    
    • 1

    信息

    ID
    6970
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    1
    已通过
    0
    上传者