Ako se striktno držimo zadatka koji traži najdulju riječ u rečenici, a mene su nekad davno učili iz hrvatskog da se riječ sastoji od slova, onda to možemo riješiti vrlo jednostavno, sa tri varijable koje prate broj slova, najdulji broj slova i poziciju najduljeg broja slova. Na osnovu te tri pozicije ispišemo riječ slovo po slovo.
Što ti je problem sa funkcijama ako znaš u mainu riješiti zadatak? Prenesi broj za prvi zadatak u funkciju po vrijednosti, a ostalo sve slično kao u main funkciji. Za drugi sam prenio niz pokazivačem u funkciju.
#include<stdio.h>
#include<ctype.h>
void najdulja(char* recenica)
{
   int brojSlovaNajdulja=0, pozicija=0, brojSlova=0;
   for (int i = 0; recenica[i]; i++)
   {
      if (isalpha(recenica[i]))
      {
         brojSlova++;
      }
      else
      {
         if (brojSlovaNajdulja < brojSlova)
         {
            brojSlovaNajdulja = brojSlova;
            pozicija = i - brojSlovaNajdulja;
         }
         brojSlova = 0;
      }
   }
   for (int i = pozicija; i < brojSlovaNajdulja+pozicija ; i++)
      printf_s("%c", recenica[i]);
}
int main()
{
   char recenica[50];
   gets_s(recenica, 50);
   najdulja(recenica);
   return 0;
}
 
     
    
    

 You have to be odd to be number one
 
                        You have to be odd to be number one
                    