PDA

Visualizza la versione completa : [C++] Determinare carattere nullo in un array


djpeppe
04-03-2007, 13:28
ciao, ho un array e voglio vedere se una determinata posizione di quell'array nulla:
per esempio:
ho dichiarato un array di 10 caratteri
l'utente non li inserisce tutti, ne inserisce solo 9.
voglio sapere se il 10 stato immesso o no, ho provato in questi 3 modi, che si sono rivelati tutti una grande fregatura:

if (array[10] == NULL) {...}
if (array[10] == '') {...}
if (array[10] == "") {...}

cosa posso fare???

P4nico
04-03-2007, 13:37
Ora non so come fatto il tuo pragramma, ma sappi che se l'utente non inserisce niente quando gli viene richiesto di inserire il decimo valore, premendo invio, non succede nulla, il programma aspetta che lui inserisce il valore... Se non cosi spegati meglio

oregon
04-03-2007, 13:44
Mostra tutto il codice del tuo programma ...

Non si capisce se hai inizializzato l'array prima di usarlo e che istruzioni usi per l'input ...

djpeppe
04-03-2007, 14:17
char stringa[10];

scanf("%s", & stringa[10]);

if(stringa[10] == NULL){...}

voglio capire se il decimo carattere stato inserito o no?
come faccio?

P4nico
04-03-2007, 14:19
Scusa ma ha provato a compilarlo ed eseguirlo e vedere cosa succede se non lo inserisci??? Leggi quello che ho scritto prima.

Facci sapere.

oregon
04-03-2007, 14:22
Prima di tutto, usi male la scanf e la stringa



char stringa[10];

scanf("%s", stringa);


In secondo luogo, come ti e' stato detto, la scanf attende comunque che tu inserisca una stringa, quindi non ha nessun senso fare quel controllo.

djpeppe
04-03-2007, 14:38
da pi di un mese che lavoro su questo programma.
ho provato di tutto, potete aiutarmi a capire che devo mettere nell'if?
il resto giusto state tranquilli.

alka
04-03-2007, 14:46
E' il linguaggio nel titolo? :stordita:

oregon
04-03-2007, 14:47
Puoi anche non credermi se ti dico che quella riga e' sbagliata (e ti assicuro che lo e' ...).

Pensandoci, forse tu vuoi valutare la lunghezza della stringa introdotta? Allora lo puoi fare con la funzione strlen ...

Gli array di caratteri non sono normalmente inizializzati ... se vuoi controllare se un determinato carattere sia stato modificato nell'input, devi iniziarlizzare prima l'array.

Fatto questo, puoi scrivere

if(stringa[10]==(char)NULL) ...

ma solo se l'array e' stato inizializzato in precedenza ...

djpeppe
04-03-2007, 15:28
grazie,
quindi per usare strlen devo fare:
x=strlen(stringa[10]);

giusto?
devo includere qualche file??

Loading