在下面的代码中,如果我输出a[0]
,我将不会得到任何输出。可能是a[0]="\n"
,但我不明白为什么?
int main() {
char a[50][80];
int n;
cin>>n;
for(int i=0;i<=n;i++)
{
cin.getline(a[i],50);
}
sort(a,n);
cout<<a[0]; // New line printed
cout<<a[1]; // Stores first string
return 0;
}
答案 0 :(得分:1)
sort(a,n);
不对。
a+n
作为第二个参数。sort(a, a+n, [](char* s1, char* s2) { return std::strcmp(s1, s2) < 0; });
使用std::vector<std::string>
会更容易。然后您可以使用
std::vector<std::string> a;
...
sort(a.begin(), a.end());