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;

}

posted @ 2025-12-22 08:16  Cx330。  阅读(2)  评论(0)    收藏  举报