Hola branncg.
No acostumbramos a hacer ejercicios pero como veo que ya has invertido bastante tiempo en él...
Este ejemplo es solo orientativo, te va a devolver la palabra mas larga de una frase, pero sólo reconoce al espacio (' ') como separador. Te quedará el trabajo de implementar que reconozca la coma, punto y coma, etc.
Código PHP:
AnsiString longestWord(AnsiString phrase)
{
int inx;
if ((inx = phrase.Pos(" ")) == 0)
return phrase;
AnsiString firstWord = phrase.SubString(1, inx);
AnsiString restOfphrase = phrase.SubString(inx + 1, phrase.Length());
AnsiString secondWord = longestWord(restOfphrase);
return firstWord.Length() >= secondWord.Length() ? firstWord : secondWord;
}
Saludos