Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: c e array!

  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    c e array!

    scusate tanto ho scritto
    codice:
    char casa[]="ciro";
    ora se metto in un ciclo for la sintassi

    codice:
    printf("%c", casa[i]);
    non mi dovrebbe stampare le lettere una paer volta?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    56
    #include "stdio.h"

    int main()
    {
    char casa[]="ciro";
    int i;
    for(i=0;i<4;i++)printf("%c",casa[i]);
    return(0);
    }

    certo, che problema hai incontrato?

  3. #3
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Puoi usare anche un ciclo while:

    codice:
    char c[] = "ciro";
    int i = 0;
    
    while(c[i] != '\0')
        printf("%c", c[i++]);
    Linux user number 403381

    Stop TCPA!

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    grazie mi funziona non so kosa fosse successo
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Originariamente inviato da Fox82
    Puoi usare anche un ciclo while:

    codice:
    char c[] = "ciro";
    int i = 0;
    
    while(c[i] != '\0')
        printf("%c", c[i++]);
    in questo codice non dovrebbe esserre corretto incrementare i in quel modo...
    Infatti quando entra nel while si trova a stampare non il carattere che occupa la posizione 0 dell'array c (cioè il primo) ma l'1.
    no?
    Cosi' và invece:
    codice:
    char c[] = "ciro";
    int i = 0;
    
    while(c[i] != '\0'){
        printf("%c", c[i);
        i++;
    }



    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    92
    Mi sa ke ti stai sbagliando Andrea, invece è proprio così.
    Anche il tuo di prog. fa la stessa cosa..

  7. #7
    Ripeto ciò che dice vali con una modifica...

    char c[] = "ciro";
    int i;
    for (i=0;i<strlen(c);i++) printf("%c", c[i]);

    Lo strlen() per rendere più dinamico il programma... oppure usare c[i] != '\0' come diceva andrea

  8. #8
    Originariamente inviato da andrea_NET-_DSL
    in questo codice non dovrebbe esserre corretto incrementare i in quel modo...
    Infatti quando entra nel while si trova a stampare non il carattere che occupa la posizione 0 dell'array c (cioè il primo) ma l'1.
    no?
    Cosi' và invece:
    codice:
    char c[] = "ciro";
    int i = 0;
    
    while(c[i] != '\0'){
        printf("%c", c[i);
        i++;
    }
    In C esiste il pre-incremento e il post-incremento.
    Quel codice funziona correttamente perchè c'è un post-incremento della variabile i.

    Parlando più a terra terra, la printf() prima stampa il carattere corrispondente al indice i (0), poi incrementa i (i = 1).
    Quindi il programma è giusto scritto così com'è.

    Ovviamente la soluzione preferibile è quella di Lethalman.

    bye

  9. #9
    Originariamente inviato da Michele Facchin
    In C esiste il pre-incremento e il post-incremento.
    Quel codice funziona correttamente perchè c'è un post-incremento della variabile i.

    Parlando più a terra terra, la printf() prima stampa il carattere corrispondente al indice i (0), poi incrementa i (i = 1).
    Quindi il programma è giusto scritto così com'è.

    Ovviamente la soluzione preferibile è quella di Lethalman.

    bye
    ah si?non passa a printf direttamente il carattere i++ (ossia i=0+1 quindi 1) ??
    non lo sapevo

    ciao
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  10. #10
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Originariamente inviato da andrea_NET-_DSL
    ah si?non passa a printf direttamente il carattere i++ (ossia i=0+1 quindi 1) ??
    non lo sapevo

    ciao
    Questo sarebbe avvenuto nel caso avessi scritto ++i

    Linux user number 403381

    Stop TCPA!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.