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;
}