Здравствуйте, Magma!
Проект сделан как консольное приложение, в среде MS Visual Studio 6.0 с использованием библиотеки шаблоно STL.
Сначала через cin получаем строку (надо нажать enter дважды, потому что первый будет считан в строку функцией getline)
Потом используется функция strtok для разбора введённой строки. Куски строки складываются в вектор vStrings
Потом идёт сортировка пузырьком (см.
тут)
Потом в цикле собираем результрущую строку strOut и вывыодим её в cout.
Приложение:
#include "stdafx.h"
#pragma warning(disable:4786)
#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std ;
int main(int argc, char* argv[])
{
// GET DATA
string s1;
cout << "Enter a string:";
getline(cin, s1);
// PARSE
vector<string> vStrings;
char *psz = strtok((char*)s1.c_str(), "\t ");
while(psz)
{
vStrings.push_back(psz);
psz = strtok(NULL, "\t ");
}
// SORT
vector<string>::iterator it;
if(vStrings.size() > 1)
{
bool bFound = true;
while(bFound)
{
bFound = false;
it = vStrings.begin()+1;
for(; it<vStrings.end(); it++)
{
if((*(it-1)).length() > (*it).length())
{
swap(*(it-1), *it);
bFound = true;
}
}
}
}
// OUTPUT
string strOut;
it = vStrings.begin();
for(; it<vStrings.end(); it++)
{
strOut += *it + " ";
}
cout <<strOut;
return 0;
}