题解 | #密码翻译#
密码翻译
https://www.nowcoder.com/practice/136de4a719954361a8e9e41c8c4ad855
#include <iostream> #include <cstdio> #include "string" using namespace std; int main() { char qingbao[81]; fgets(qingbao, 81, stdin); //后边会多一个\n string qb = qingbao; qb.erase(qb.size() - 1); for (int i = 0; i < qb.length(); i++) { if (qb[i] >= 'a' && qb[i] <= 'y' || qb[i] >= 'A' && qb[i] <= 'Y') { qb[i] += 1; } else if (qb[i] == 'z' || qb[i] == 'Z') { qb[i] -= ('z' - 'a'); } } printf("%s\n", qb.c_str()); return 0; }
因为输入的字符串有空格 ,所以选择 fgets 来读字符串,不过 fgets,也会多读进来一个 \n换行 ,所以再用string 的erase擦去换行
为什么要用string,因为普通字符串char[] 没法判断长度,也就没办法擦去最后的换行,再来一个循环很麻烦,而且下面的for循环条件也可以直接调用.length方法