Programme en C

Résolu
Maxg59 Messages postés 275 Statut Membre -  
sam3000 Messages postés 1226 Statut Membre -
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
Configuration: win XP

7 réponses

  1. Maxg59 Messages postés 275 Statut Membre 27
     
    Personne pour me répondre ??????
    0
  2. faico
     
    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
  3. Maxg59 Messages postés 275 Statut Membre 27
     
    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
  4. Kermitt31 Messages postés 3679 Date d'inscription   Statut Contributeur Dernière intervention   499
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Kermitt31 Messages postés 3679 Date d'inscription   Statut Contributeur Dernière intervention   499
     
    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
  7. Maxg59 Messages postés 275 Statut Membre 27
     
    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
    1. Kermitt31 Messages postés 3679 Date d'inscription   Statut Contributeur Dernière intervention   499
       
      Désolé j'ai pas compris ton probleme... "je ne connais pas encore else "
      Ca veut dire quoi ca ???
      0
      1. Maxg59 Messages postés 275 Statut Membre 27 > Kermitt31 Messages postés 3679 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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
  8. sam3000 Messages postés 1226 Statut Membre 144
     
    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