scusate tanto ho scritto
ora se metto in un ciclo for la sintassicodice:char casa[]="ciro";
non mi dovrebbe stampare le lettere una paer volta?codice:printf("%c", casa[i]);
scusate tanto ho scritto
ora se metto in un ciclo for la sintassicodice:char casa[]="ciro";
non mi dovrebbe stampare le lettere una paer volta?codice:printf("%c", casa[i]);
Ciro Marotta - Programmatore JAVA - PHP
Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.
#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?
Puoi usare anche un ciclo while:
codice:char c[] = "ciro"; int i = 0; while(c[i] != '\0') printf("%c", c[i++]);
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.
in questo codice non dovrebbe esserre corretto incrementare i in quel modo...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++]);
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...
Mi sa ke ti stai sbagliando Andrea, invece è proprio così.
Anche il tuo di prog. fa la stessa cosa..
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
In C esiste il pre-incremento e il post-incremento.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++; }![]()
![]()
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
michele
michele.facchin@virgilio.it
Server:irc.azzurra.org | /join #c
ah si?non passa a printf direttamente il carattere i++ (ossia i=0+1 quindi 1) ??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
non lo sapevo
ciao![]()
![]()
Vediamo..sogni che diventano professione...passioni che diventano vita...Free as in Freedom...
Questo sarebbe avvenuto nel caso avessi scritto ++iOriginariamente 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![]()
![]()
![]()