社区讨论

关于C++20读入字符数组

学术版参与者 4已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo1viu7r
此快照首次捕获于
2023/10/23 03:40
2 年前
此快照最后确认于
2023/11/03 04:10
2 年前
查看原帖
下面这份代码:
CPP
#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读入字符数组?

回复

7 条回复,欢迎继续交流。

正在加载回复...