社区讨论
关于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 条回复,欢迎继续交流。
正在加载回复...