#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<string>
using namespace std;
int main()
{
int a;
cout << "hello world" << endl;
char c,tch;
cin >> noskipws;//防止永远进行循环
int i = 0;
string t = " ";
while (cin.get(tch))
{
//回车放在前面 这样回车就不会存入字符串中
if (tch == '\n')
break; //遇到回车符号就跳过这个字符,并退出循环
//前两个是存储字符串格式加空格 没什么用 就排除
if (i>1) {
t += tch;
}
else if (i == 0) {
c = tch;
}
i++;
}
int n = int(c - '0');//接受字符串个数n,我理解没什么用
int tsize = t.size();
int j=0;
string str = "";
for (int i = 0; i < tsize; i++)
{
if (t[i] == ' ')
{
continue;
}
for ( j = i; j < i + 8; j++) {
if (j== tsize||t[j] == ' ')
{
int mark = i;
i = j - 1;
//首字母排序和中间位置不一样
if(mark==0)
sort(str.begin(), str.end());
else
sort(str.begin() + mark - 1, str.end());
for(int k=j;k<mark +8;k++)
str += '0';
break;
}
else {
str += t[j];
}
}
//字符追踪,防止遍历过的字符被重新遍历
i = j - 1;
}
//使用map自动对字符进行排序
int strsize = str.size();
map<char, int> map_strsize;
for (int l = 0; l<strsize; l += 8)
map_strsize[str[l]] = l;
int map_size = map_strsize.size();
for (map<char, int>::iterator iter = map_strsize.begin(); iter != map_strsize.end(); ++iter) {
for (int t = iter->second; t<iter->second + 8; t++)
{
cout << str[t];
map_size--;
}
if (map_size!=0)
{
cout << ' ';
}
}
cin >> a;//用于暂停屏幕
return 0;
}