本题要求编写一个解密藏尾诗的程序。
注:在 2023 年 1 月 17 日 15 点 14 分以后,该题数据修改为 UTF-8 编码。
输入格式:
输入为一首中文藏尾诗,一共四句。每句一行,但句子不一定是等长的,最短一个汉字,最长九个汉字。注意:一个汉字占三个字节。
输出格式:
取出每句的最后一个汉字并连接在一起形成一个字符串并输出。同时在末尾输入一个换行符。
输入样例:
悠悠田园风
然而心难平
兰花轻涌浪
兰香愈幽静
输出样例:
风平浪静
代码示例:
#include <iostream>
#include <string>
using namespace std;
int main() {
string poem[4];
string result = "";
for (int i = 0; i < 4; i++) {
getline(cin, poem[i]);
// cout<<poem[i]<<endl;
}
for (int i = 0; i < 4; i++) {
result += poem[i].substr(poem[i].size()-3,3);
}
cout << result << endl;
return 0;
}
难点在于汉字的输入以及输出:
输入:getline可以按照破折号读取材料,而cin是按照空格读取的。c的gets同getline.
输出:一个中文是三个字节,我所理解的是三个不可读字符拼凑成一个可读字符(汉字)。所以每次尾部的汉字就是substr后的尾部三个字节。