#include <bits/stdc++.h> using namespace std; int main () { int n; string str; cin>>n;getchar(); while(n--){ getline(cin,str); cout<<str<<endl; str=regex_replace(str,regex(R"(\s+)")," "); str=regex_replace(str,regex(R"(^\s+|\s+$|\s+(?=\W))"),""); for(auto &c:str)if(c!='I')c=tolower(c); str=regex_replace(str,regex(R"(\bI\b)"),"&&&"); //将I me替换为&&&,避免影响can you和could you str=regex_replace(str,regex(R"(\bme\b)"),"&&&"); str=regex_replace(str,regex(R"(\bcan you\b)"),"I can"); str=regex_replace(str,regex(R"(\bcould you\b)"),"I could"); str=regex_replace(str,regex(R"(&&&)"),"you"); //&&& 转为 you str=regex_replace(str,regex(R"(\?)"),"!"); cout<<"AI: "<<str<<endl; } return 0; } 用C语言写
时间: 2023-07-17 17:08:21 浏览: 190
万能头文件#include“bitsstdc++.h”.pdf
这段代码使用C++语言编写,而不是C语言。它是一个简单的程序,通过命令行输入一个整数n,然后循环n次,每次从输入中获取一行字符串。然后,它对字符串进行一系列的处理和替换操作,并输出处理后的结果。
具体的处理步骤如下:
- 使用getline函数获取一行输入字符串。
- 使用regex_replace函数和正则表达式将字符串中多个连续空格替换为单个空格。
- 使用regex_replace函数和正则表达式去除字符串两端的空格,以及在标点符号前后的空格。
- 将字符串中所有的大写字母'I'替换为小写字母'i'。
- 将字符串中独立的单词'I'和'me'替换为'&'字符,避免影响到'can you'和'could you'的处理。
- 将字符串中独立的单词'can you'替换为'I can'。
- 将字符串中独立的单词'could you'替换为'I could'。
- 将字符串中所有的'&'字符替换回'you'。
- 将字符串中所有的问号'?'替换为感叹号'!'。
- 输出处理后的字符串。
请注意,该代码依赖于C++标准库中的一些功能,包括iostream、string和regex等头文件。因此,在编译运行之前,请确保你的编译环境支持这些库。
阅读全文