火麒麟Cathy 下午好🌅🌅🌅
本答案参考ChatGPT-3.5
根据题目描述,我们需要对输入的字符串进行一系列规则的替换,并输出修改后的字符串。
解决方案如下:
- 定义一个空字符串
result
,用来存储修改后的字符串。 - 遍历输入字符串
S
,逐个字符进行判断:
- 如果当前字符为字母
i
,则将其替换为数字1
,并将结果添加到result
。 - 如果当前字符为字母
o
,并且其前面的字符不是字母t
或者字母f
,则将其替换为数字0
,并将结果添加到result
。 - 如果当前字符是字母
t
,并且后面两个字符是字母o
,则将其替换为数字2
,并将结果添加到result
。 - 如果当前字符是字母
f
,并且后面三个字符是字母o
和字母r
,则将其替换为数字4
,并将结果添加到result
。 - 其他情况下,直接将当前字符添加到
result
中。
- 输出
result
作为修改后的字符串。
#include <iostream>
#include <string>
int main() {
std::string S;
std::getline(std::cin, S); // 读取输入字符串
std::string result;
for (int i = 0; i < S.length(); i++) {
if (S[i] == 'i') {
result += '1';
} else if (S[i] == 'o' && (i == 0 || (S[i-1] != 't' && S[i-1] != 'f'))) {
result += '0';
} else if (S[i] == 't' && i < S.length()-1 && S[i+1] == 'o') {
result += '2';
} else if (S[i] == 'f' && i < S.length()-2 && S[i+1] == 'o' && S[i+2] == 'r') {
result += '4';
} else {
result += S[i];
}
}
std::cout << result << std::endl; // 输出修改后的字符串
return 0;
}
样例输入:
1 toconvertfori
样例输出:
1 2c0nvert41