scanf对string数组输入
#include<bits/stdc++.h>
using namespace std;
string nums[4];
int main(){
for (int i=0;i<3;i++){
nums[i].resize(21); // scanf对string一定要先开空间
scanf("%s",&nums[i][0]); // 这样写,因为输入相当于从第一个字符开始
getchar(); // 去出字符串后的回车,scanf对回车会停止输入,而cin则是省略
}
}
cin对string数组输入
#include<bits/stdc++.h>
using namespace std;
string nums[4];
int main(){
for (int i=0;i<3;i++){
cin>>nums[i]; // 简单粗暴,爱了爱了。不过注意对数组类的输入scanf效率是比cin快的
}
}
注意:scanf输入的写法中有个问题因为开了21个空间,在输入填不满这个空间时,会默认填上\0或NULL来代表空,在sort时,有时会出问题(下面有道题可以试试),因为在字符串间相加会把空也带上
可以体会下scanf输入string,cin输入string的区别