关于C++20读入字符数组
  • 板块学术版
  • 楼主Tjqq
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/8/13 08:28
  • 上次更新2023/11/3 04:10:06
查看原帖
关于C++20读入字符数组
540665
Tjqq楼主2023/8/13 08:28

下面这份代码:

#include <bits/stdc++.h>
using namespace std;
const int N=5e5+5,M=N<<2;
int n,Q,cur;
int lst[N];
char s[N],c;
vector<int> v;
bool vis[N];
signed main() {
//  srand(time(0));
//  freopen(".in","r",stdin);
//  freopen(".out","w",stdout);
    cin>>n;
    cin>>s+1;
    cin>>Q;
    for(int op,x; Q--; ) {
        cin>>op>>x>>c;
        if(op==1) s[x]=c,v.emplace_back(x);
        if(op==2) cur=1,v.clear();
        if(op==3) cur=2,v.clear();
    }
    for(auto x:v)
        vis[x]=1;
    if(cur==1) {
        for(int i=1; i<=n; i++) {
            if(!vis[i] && s[i]-'a'<0) s[i]+=('a'-'A');
            putchar(s[i]);
        }
    }
    if(cur==2) {
        for(int i=1; i<=n; i++) {
            if(!vis[i] && s[i]-'a'>=0) s[i]+=('A'-'a');
            putchar(s[i]);
        }
    }
    if(!cur) cout<<s+1;
    return 0;
}

本地编译都不会报错(C++20和C++17都试过)

但是在atcoder上的Custom Test的C++20-gcc12.2上读入字符串的第14行报错了,C++17则没有问题,如果把字符数组换成string就能过C++20的编译。

请问各位dalao C++20怎么用cin读入字符数组?

2023/8/13 08:28
加载中...