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:
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 diciamocodice:sizeof(array)/sizeof(array[0])
Dopo una serie di tentativi sono arrivato a questa conclusione, funzionante:
Non sapevo neanche che si potesse fare, è stato un errore fortunato.codice:int conta=0; while(array[conta]){ conta++; }
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![]()