[C] boucle

Fermé
johan - 15 nov. 2005 à 10:43
dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 - 15 nov. 2005 à 14:05
bonjour , j'ai cette boucle :

while ( ( c = getchar() ) != EOF )

{



if ( c == ' ' )

putchar(b);


}


avec le for j'ai écrit çà mais çà ne marche pas...



for ( c = getchar() != EOF; c == ' ' )

quelqu'un a une idée de l'équivalent avec for ?
merci

21 réponses

dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 757
15 nov. 2005 à 14:05
Le code de marden fonctionne t-il?

L'utilisation de la variable est inutile dans le peu de code que tu nous montres: on ne va utiliser qu'une fois la valeur de la variable.(Donc autant le faire explicitement comme Marden le fait)

Dans ton dernier exemple je ferai plutot comme Marden:
for ( c = getchar() ; c != EOF ; c = getchar() ) {
if ( c == ' ' ) c='_' ;
putchar (c)
}

Ton code est correct mais un peu plus long:
for ( c = getchar() ; c != EOF ; c = getchar() ) {
if ( c == ' ' ) putchar(b) ;
else if ( c != ' ' ) putchar (c);
}

Si C est ' ' alors putchar(b)
Si C est different de ' ' alors putchar(C) //ici tu test la valeur de C alors qu'il n'y a que 2 cas et que tu viens de tester le premier

Le code de Marden donne plutot:
Si C est ' ' alors C = '_' (Si on est pas dans le cas interessant on modifie C)
Puis putchar(C) (Quoi qu'il arrive j'insere C)

a+
dje-dje
0