B2113 输出亲朋字符串

· · 题解

题意

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

小知识

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

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

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

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

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

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

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

上述代码的结果为:1231321

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

代码

#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;
}