PDA

Visualizza la versione completa : c e array!


ciro78
26-05-2004, 16:08
scusate tanto ho scritto


char casa[]="ciro";

ora se metto in un ciclo for la sintassi



printf("%c", casa[i]);

non mi dovrebbe stampare le lettere una paer volta?

vali75
26-05-2004, 16:16
#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?

Fox82
26-05-2004, 16:55
Puoi usare anche un ciclo while:




char c[] = "ciro";
int i = 0;

while(c[i] != '\0')
printf("%c", c[i++]);

ciro78
26-05-2004, 17:14
grazie mi funziona non so kosa fosse successo

andrea_NET-_DSL
26-05-2004, 19:54
Originariamente inviato da Fox82
Puoi usare anche un ciclo while:




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? :D
Cosi' v invece:


char c[] = "ciro";
int i = 0;

while(c[i] != '\0'){
printf("%c", c[i);
i++;
}






:ciauz: :ciauz:

Peppewt
26-05-2004, 20:20
Mi sa ke ti stai sbagliando Andrea, invece proprio cos.
Anche il tuo di prog. fa la stessa cosa..

Lethalman
26-05-2004, 20:26
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

Michele Facchin
26-05-2004, 20:44
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? :D
Cosi' v invece:


char c[] = "ciro";
int i = 0;

while(c[i] != '\0'){
printf("%c", c[i);
i++;
}


:ciauz: :ciauz:

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

andrea_NET-_DSL
27-05-2004, 16:07
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 :stordita:

ciao :D
:)

Fox82
27-05-2004, 17:32
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 :stordita:

ciao :D
:)

Questo sarebbe avvenuto nel caso avessi scritto ++i

:ciauz:

Loading