L1-064 估值一亿的AI核心代码 (20 分)

题目分析:
从大佬们的博客上看到的这个解题思路,感觉非常的厉害。
1.通过isalnum()函数判断是否是字母或者数字, 是则将除了 I 的字符用tolower() 转换成小写。不是,则在该字母位置插入空格。最后将’?‘转换成’!’

2.通过stringstream读入,将这一串字符分割成, 单词 / 标点符号

3.首先判断整个串首字母是否是标点符号, 是则输出空格,

4.循环,首先判断第一个串是否是标点符号,是则直接输出,不是进行后面的判断与转换。

#include 
#include 
#include 
#include 
#include 
using namespace std;
const int N = 100 + 10;
int n;
string s;

int main()
{
    cin>>n;
    getchar();
    while (n -- ){
        string str[1000 + 5], s1;
        int cnt = 0;
        getline(cin, s);
        cout<>s1){
            str[cnt++] = s1;
        }
        
        //如果第一个字母是标点符号,则输出空格
        if(!isalnum(str[0][0]))
            cout<<" ";
        
        for (int i = 0; i < cnt; i ++ )
        {
            if(!isalnum(str[i][0])){   //标点符号前不存在空格
                cout<

你可能感兴趣的:(PTA,天梯,c++,算法)