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.
Hai praticamente solo due possibilità:
  • 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..)