Например.
Разбиваешь строку на слова, используя метод string::find_first_of() и выбираешь самое короткое.
Вообще очень странный вопрос. Если ты владеешь арсеналом C++ для работы со строками, то задача должна выглядеть предельно простой, в два действия - разрезать строку на слова и найти самое короткое.
Если не владеешь, то тебе любой совет бесполезен. Смысл спрашивать, как сделать табуретку, если не умеешь держать пилу?
Лови пару ссылок, мб поможет.
http://darkraha.com/rus/cpp/stl/stl01.php
http://server.179.ru/tasks/new-cpp/14-strings2.html
#include
int main( )
{
char raz[]=" .,!"; //массив разделителей слов
char s[80]; //исходный текст
char *slovo; //указатель на очередное слово
char *ks; //ввод строки с пробелами
cout<<"vvedite stroku ";
cin.getline(s, 80); //ввод строки с пробелами
slovo=strtok(s, raz); // Выделение первой лексемы
int min; //кол-во букв в минимальном слове
int n;
n=0;
min=1000;
while(slovo!=0) //нахождение минимальной длинны
{
n=strlen(slovo);
if(n
slovo=strtok(0, raz); // выделение следующих лексем
}
slovo=strtok(s, raz);
while(slovo!=0) //нахождение минимального слова
{
n=strlen(slovo);
if(n==min)
ks=slovo;
slovo=strtok(0, raz); //
}
//операции перестановки бук в слове
getch();
}