Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Svuotare un vettore di caratteri in C...

    Ciao a tutti, una cortesia...una simile istruzione: int array[20]={0} mi mette a zero tutti gli elementi del mio vettore array, giusto? Se vado a stamparlo avrò venti 0 nel mio array, ma non posso fare sì che sia vuoto, vero? Nel senso che se chiedo la stampa non mi stampi nulla? Impossibile, vero? Analogamente se il mio vettore fosse di tipo char...non è possibile, vero? Dentro ci sarà sempre qualcosa, giusto? Scusate se vi sembra banale una simile domanda, ma sono alle prime armi e questo mi chiarirebbe un po' le idee...grazie mille...

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: Svuotare un vettore di caratteri in C...

    Originariamente inviato da freethinker
    Ciao a tutti, una cortesia...una simile istruzione: int array[20]={0} mi mette a zero tutti gli elementi del mio vettore array, giusto? Se vado a stamparlo avrò venti 0 nel mio array, ma non posso fare sì che sia vuoto, vero? Nel senso che se chiedo la stampa non mi stampi nulla? Impossibile, vero?
    Non ha senso.

    Analogamente se il mio vettore fosse di tipo char...non è possibile, vero? Dentro ci sarà sempre qualcosa, giusto? Scusate se vi sembra banale una simile domanda, ma sono alle prime armi e questo mi chiarirebbe un po' le idee...grazie mille...
    No, e poi cosa sarebbe per te, "vuoto"?

    Un valore accettabile per il char è il nul ma corrisponde allo zero binario, non può essere "vuoto".
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    ...se io scrivessi un char array[20]='null';? Dentro cos'avrei?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da freethinker
    ...se io scrivessi un char array[20]='null';? Dentro cos'avrei?
    Così come l'hai scritto, avresti un errore ...

    Forse è meglio che tu ci dica qual è il problema che pensi possa essere risolto in un modo che stai cercando senza successo.

    Probabilmente la strada per risolverlo è un'altra ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    ...no, no, è solo per avere chiarezza...ad esempio mi sono inventato per esercizio un programmino che funziona per copiare un vettore di caratteri s1 in un altro vettore di caratteri s2 tramite una funzione copia. All'inizio dichiaro i miei 2 vettori di cui un con una frase all'interno mentre l'altro lo lascio senza...

    char array1[]="Il mio nome è Andrea";
    char array2[40];

    e li stampo prima e dopo la chiamata alla mia funzione copia...chiaramente, array2, prima della chiamata alla funzione copia, mi stampa dei caratteri assurdi! Per questo motivo mi sono posto la domanda...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da freethinker
    chiaramente, array2, prima della chiamata alla funzione copia, mi stampa dei caratteri assurdi! Per questo motivo mi sono posto la domanda...
    Appunto ... il tuo problema si risolve con

    char array2[40] = {0};
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    ...grande! Ho fatto delle prove ed ho verificato che con char array[20]={0} non mi stampa niente, mentre con int array[5]={0} mi stampa cinque 0! Grazie mille e porta pazienza per la mia ignoranza in materia, ma pian piano voglio capirci qualcosa...

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da freethinker
    ...grande! Ho fatto delle prove ed ho verificato che con char array[20]={0} non mi stampa niente, mentre con int array[5]={0} mi stampa cinque 0! Grazie mille e porta pazienza per la mia ignoranza in materia, ma pian piano voglio capirci qualcosa...
    Guarda, il fatto è che il C ha regole semplici. Dovresti studiarle sui libri piuttosto che tramite il forum. Il forum è uno strumento da utilizzare per problemi specifici su codice specifico, non per formazione ed autoapprendimento.

    In particolare, per il tuo problema, le stringhe in C sono array di char terminate da carattere NUL (0 binario), come potrai studiare su qualsiasi libro anche di base.

    Una stringa come CIAO in C equivale ad un array di char il contenuto è

    'C' 'I' 'A' 'O' '\0'

    in cui l'ultimo carattere (il terminatore) indica quando la stringa termina.

    Se lo usi come primo carattere, questo determina una stringa "vuota" e il printf non visualizzerà nessun carattere.

    Ovviamente è un'altra storia per un array di interi, che sono dei valori numerici e non ha senso che siano "vuoti" (anche zero è un valore).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    ...hai ragione...ma ti assicuro che sto studiando e tanto sul Deitel...starò più attento a sottoporre certe questioni...grazie comunque tantissimo per la tua consulenza...

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da freethinker
    ...hai ragione...ma ti assicuro che sto studiando e tanto sul Deitel...starò più attento a sottoporre certe questioni...grazie comunque tantissimo per la tua consulenza...
    Figurati ... non era un "rimprovero" ... era solo un modo di consigliarti la migliore strada ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.