下面这份代码:
#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读入字符数组?