Двигаешься по разделительным знакам считая слова и их длинну.
Первое максимальное и номер =1. потом от слова к слову, если есть большее запоминаешь слово в массив и запоминаешь соответствующий показатель счетчика слов.
//Если слова отделены пробелами, то пусть задан массив:
char mas[80] = " Слово1 Слово2 Словоооо3 Слово4 Сл";
int n=1, m=1; // позиции начала и конца слова
int cw=0; // кол. слов
int maxl=0; // максимальная длина слова
int Nmaxl=0; // номер с максимальной длиной слова
for(int k = 0; k < 80; k++)
{
// выход из цикла если конец строки
if(mas[k]==0) break;
if(k==0) // для 1 символа
{
if(mas[0] != ' ') n=0; // начало слова найдено
}
else if(k==79 || (mas[k+1] == 0) ) // для последнего символа
{
if(mas[k] != ' ')
{
m=k; // конец слова найден
cw++; // увеличим счетчик слов
// если длина слова больше максимальной запомненной, то надо запомнить
// новую длину и номер слова
if( (m-n+1) > maxl )
{
maxl = (m-n+1);
Nmaxl = cw;
}
}
}
else // для символов внутри
{
// если предыдущий пробел, а текущий нет, то это начало слова
if(mas[k-1]==' ' && mas[k]!=' ') n=k;
// если текущий не пробел, а следующий пробел, то это конец слова
if(mas[k]!=' ' && mas[k+1]==' ')
{
m=k;
cw++; // увеличим счетчик слов
// если длина слова больше максимальной запомненной, то надо запомнить
// новую длину и номер слова
if( (m-n+1) > maxl )
{
maxl = (m-n+1);
Nmaxl = cw;
}
}
}
}
cout << Nmaxl;