Ciao a tutti, tra gli esercizi del mio professore ce n'è uno che richiede lo sviluppo di una function c che restituisca in output la parola più piccola contenuta in un testo e la sua dimensione. Ho fatto l'esercizio e funziona avendo implementato anche il main per provarlo ma tuttavia ci sarebbe un modo per fare si che la parola più piccola insieme alla sua dimensione venga restituita in output dalla funzione? Tramite return ad esempio come richiede la traccia, non riesco perchè la stringa sarebbe di tipo char e la dimensione un int. Posto il codice con la mia prova.
/* Sviluppare una function C che, data come parametro di input una
stringa che rappresenta un testo in italiano, determina e
restituisce come parametri di output la parola di lunghezza minima
contenuta nel testo e la sua lunghezza. Nel testo le parole sono separate da un unico spazio. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void word_min ( char testo[], char parola[], int *n_min);
int main()
{
char testo [30], parola [10];
int n_min;
printf("\nInserisci testo: ");
gets(testo);
word_min(testo, parola, &n_min);
printf("La parola piu' piccola e' %s ed e' lunga %d", parola, n_min);
return 0;
}
void word_min ( char testo[], char parola[], int *n_min)
{
char *token; int n;
token = strtok(testo, " "); //Spezza il testo
*n_min = strlen(token); //Assegna ad *n_min la lunghezza del token
strcpy(parola, token); //Copio la stringa token in parola
while ( token != NULL)
{
n = strlen(token); //Assegno ad n la lunghezza del token
if ( n < *n_min )
{
*n_min = n;
strcpy(parola, token);
}
token = strtok(NULL, " ");
}
}