Programme en C

Résolu/Fermé
Maxg59 Messages postés 275 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 7 octobre 2006 - 13 mai 2005 à 19:09
sam3000 Messages postés 1225 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 13 juin 2005 - 18 mai 2005 à 17:42
Salut tout le monde !
J'ai un petit probléme en C :
Je voudrais cré un programme qui copi so entrée sur sa sortie en remplacant un caractére uou une chaine de caractéres estpace par un seul caractére ....
Sa fait longtemps que je cherche ... Pas mayen de trouver ...
Merci d'avance
Max

7 réponses

Maxg59 Messages postés 275 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 7 octobre 2006 27
13 mai 2005 à 21:43
Personne pour me répondre ??????
0
salam
voila ce programme copie son entrée dans sa sortie une fois que vous appuiyez sur la touche Entrée. et pour remplacer les espaces ajoutter des if(c=' ') avant putchar(v);

#include<stdio.h>
main(){
int c;
while((c=getchar())!=EOF)
putchar(c);
}

Good luck !
0
Maxg59 Messages postés 275 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 7 octobre 2006 27
16 mai 2005 à 14:07
Merci !!!
Mais bon .......
Je vien juste de commencer le C .....
Pourrais-tu stp me dire comment faire pour remplacer plusieurs espaces en un .....
J'ai essayé plusieurs façons mais aucunes n'ont marché ....
Merci d'avance
Max
0
Kermitt31 Messages postés 3669 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 8 août 2006 492
16 mai 2005 à 14:35
On a fait plus propre mais ca devrait marcher... Le principe est de memoriser si tu as deja eu un caractere espace avant. Si c'est le cas alors tu utilises un "marqueur" pour t'en "souvenir"

Il existe donc le cas ou :
le caractère a ajouter n'est pas un espace (donc on l'ajoute)
le caractère à ajouter est un espace et on n'a eu un caractère autre qu'un espace avant (donc on l'ajoute)
le carctère à ajouter est un espace et on a deja eu un caractère espace avant (donc on l'ajoute pas et on passe au caractère suivant)

#include<stdio.h>
main()
{
int c,espace;
espace = 0;

while((c=getchar())!=EOF)
{
if (espace == 1 || espace == 2)
{
if (c==' ')
espace = 2;
else
espace = 0;
}
else
{
if (c == ' ')
espace = 1;
else
espace = 0;
}
if espace != 2
putchar(c);
}
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kermitt31 Messages postés 3669 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 8 août 2006 492
16 mai 2005 à 14:57
Je crois que c'est un peu plus simple ca que ce que j'ai ecrit precedemment... j'ai le cerveau lent aujourd'hui :-DDD

#include<stdio.h> 
main() 
{ 
  int c,espace; 
  espace = 0; 

  while((c=getchar())!=EOF) 
  { 
    if (c != ' ')
      espace = 0;
    else
      espace++;  
    if espace < 2 
      putchar(c); 
  } 
} 
0
Maxg59 Messages postés 275 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 7 octobre 2006 27
18 mai 2005 à 16:35
Salut a tous !!!!
Déja merci !!!!!
Mais ( car il y a encore un Mais):
ce qui m'interesse c'est de pouvoir remplacer plusieurs espaces par quelque chose ....
un truc du genre :

if(' '<=2)
la chaine d'espace est remplacée par un seul ...

le probléme c'est que je ne connais pas encore else et donc que je ne dois pas le faire avec ....
j'ai 2 problémes :
-Comment désignes une chaine de caractére espaces sans tous les prendre ?
-Comment replacer cette chaine ? ( je ne sais pas si un simple = suffit )
j'éspére que vous m'avais compri ...
Désolé si je suis un peu ***** *******
Mais Bon Merci !!!!!!!!!
Max
0
Kermitt31 Messages postés 3669 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 8 août 2006 492
18 mai 2005 à 17:14
Désolé j'ai pas compris ton probleme... "je ne connais pas encore else "
Ca veut dire quoi ca ???
0
Maxg59 Messages postés 275 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 7 octobre 2006 27 > Kermitt31 Messages postés 3669 Date d'inscription jeudi 15 juillet 2004 Statut Contributeur Dernière intervention 8 août 2006
18 mai 2005 à 17:32
if (c != ' ')
espace = 0;
else
espace++;
if espace < 2
putchar(c);
}
en fait, je suis en apprentissage du langage C ...
et pour l'instant je ne connais pas la commande ELSE

Max
0
sam3000 Messages postés 1225 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 13 juin 2005 144
18 mai 2005 à 17:42
ELSE:
Definition:
clause conditionnelle complétant le IF
si la condition du IF est VRAI, alors la commande qui suit le IF est executé
si la condition du IF est FAUX, alors la commande qui suit le ELSE est executé (else est mise juste apres la commande du IF)
donc on a:

IF (condition) commande_vrai; ELSE commande_faux;

0