Hai praticamente solo due possibilità:Originariamente inviato da PJ123
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.
- contare runtime i caratteri immessi dall'utente e portarti in giro quel valore;
- (come ti ha detto YuYevon) bruciare uno dei valori possibili, assegnandogli il significato di fine array, previa inizializzazione di tutto l'array a quel valore!
con sizeof puoi solo ottenere risultati a compile time, non runtime.
p.s. in realtà ci sono anche altri metodi:
- una sequenza di caratteri terminatori; ad esempio c'è una funzione della microsozz (non ricordo quale) che restituisce una lista di stringhe separate da 0 e terminata da 00;
- Una pascal string, in cui il primo byte trasporta la lunghezza dell'array stesso (ovvio limitato a 255 elementi);
- Una qualunque altra grammatica, che permetta di dedurre dal contenuto dell'array stesso, la sua fine (ad esempio vedi il formato tar, o robe del tipo.. <string>your string</string>, ecc.. ecc..)

Rispondi quotando