我想解决一个问题,该问题是我要提取一个字符串并按增加字长的顺序打印它。当我输入测试用例的数量时,它错误地读取了第一个字符串(我猜是由于换行符)。这是代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
std::cin>>t;
while(t--){
std::string s;
//int extraSpace;
//cin >> extraSpace;
getline(cin,s);
//cout<<s<<endl;
size_t l=s.length();
std::vector<std::pair<int, std::string> >v;
int k=0;
for(int i=0;i<l;i++){
if(s.at(i)==' '||i==l-1){
std::pair<int, std::string> temp;
temp.first=i-k;
std::string h = s.substr(k, i-k);
if(i==l-1)
h=h+s.at(i);
temp.second=h;
v.push_back(temp);
k=i+1;
}
}
std::sort(v.begin(), v.end());
std::vector< std::pair<int, std::string> >::iterator it=v.begin();
for(;it!=v.end();++it){
std::pair<int, std::string> temp=*it;
std::cout<<temp.second<<" ";
}
std::cout<<std::endl;
}
return 0;
}