So già che questa domanda la fanno di continuo, ma io non ci sono ancora riuscito.
Dunque.. Il linguaggio è C, e ho un array di caratteri di cui non conosco quante posizioni sono occupate.
Quando ho dichiarato l'array gli ho assegnato 50 posizioni, però i caratteri vengono dati in input dall'utente, quindi l'array ha un numero di valori variabile.

Ho letto di questa funzione presente in stdio.h:
codice:
sizeof(array)/sizeof(array[0])
però non fa al caso mio, perché riporterebbe il numero di posizioni assegnate in memoria, e quindi dovrebbe stamparmi 50, ma io voglio conoscere le posizioni "occupate", con un valore diciamo

Dopo una serie di tentativi sono arrivato a questa conclusione, funzionante:
codice:
int conta=0;
while(array[conta]){
    conta++;
}
Non sapevo neanche che si potesse fare, è stato un errore fortunato.
Penso che si possa interpretare così: Finché array[conta] esiste (ha un valore), incrementa conta.
Alla fine stampando conta ho il numero di valori.

Però non è il massimo in quanto ad "eleganza", e il mio prof sembra non gradire..
Gli ho chiesto se in qualche libreria fosse presente una funzione che facesse al caso mio, e mi ha parlato del sizeof, che non ha risolto nulla.
Ehm... La fatidica domanda: Esiste, in qualche libreria, una funzione del genere?

Al mio prof non va bene che io definisca da solo le funzioni perché non le ha ancora spiegate