12.17
include
include
include
include
using namespace std;
// 消除多余空格、处理首尾空格和标点前空格
string cleanSpaces(const string &s) {
string res = regex_replace(s, regex("\s+"), " "); // 多个空格转一个
res = regex_replace(res, regex("^\s+|\s+$"), ""); // 去除首尾空格
res = regex_replace(res, regex("\s+([.,?!])"), "$1"); // 标点前空格去除
return res;
}
// 处理大小写(除 I 外转小写)
string processCase(const string &s) {
string res;
for (char c : s) {
if (c == 'I') {
res += c;
} else {
res += tolower(c);
}
}
return res;
}
// 替换独立的 can you、could you
string replacePhrases(string s) {
s = regex_replace(s, regex("\bcan you\b"), "I can");
s = regex_replace(s, regex("\bcould you\b"), "I could");
return s;
}
// 替换独立的 I 和 me 为 you
string replaceIMe(string s) {
s = regex_replace(s, regex("\bI\b"), "you");
s = regex_replace(s, regex("\bme\b"), "you");
return s;
}
// 替换问号为惊叹号
string replaceQuestion(string s) {
replace(s.begin(), s.end(), '?', '!');
return s;
}
int main() {
int N;
cin >> N;
cin.ignore(); // 忽略换行符
for (int i = 0; i < N; ++i) {
string input;
getline(cin, input);
// 原样打印用户输入
cout << input << endl;
// 处理流程
string processed = cleanSpaces(input);
processed = processCase(processed);
processed = replacePhrases(processed);
processed = replaceIMe(processed);
processed = replaceQuestion(processed);
// 输出 AI 回答
cout << "AI: " << processed << endl;
}
return 0;
}

浙公网安备 33010602011771号