IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Supprimer la répétition d'une lettre dans un mot


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Supprimer la répétition d'une lettre dans un mot
    Bonjour à tous !
    Je suis débutant en C , et j'aurais besoin de votre aide pour un problème face auquel je m'arrache les cheveux.

    Je vous explique :
    Je cherche à ce que le programme supprime la répétition d'une lettre dans un mot.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    printf("Entrez le mot\n");
       gets(mot);
       printf("Entrez la lettre a enlever\n");
       scanf("%c",&lettre);
       fflush(stdin);
     
     
       for(k=0;k<strlen(mot);k++)
       {
         if(lettre != mot[k])
         {
           nv_mot[j]=mot[k]; 
           j++;
         }
     
       }
      printf("\nLe nouveau mot est : %s",nv_mot);
    Ici , j'entre la lettre au clavier, ça fonctionne, mais cela que pour une lettre seule.

    Je souhaiterais ne pas devoir entrer les lettres qui se répète, que le programme le face automatiquement. Exemple : Barreau -> Bareu

    Je vous remercie d'avance, Skeazy.

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    On peut suivre cet algo utilisant deux indices pour parcourir le mot :

    rd : position de l'élément testé pour être conservé ou non
    wr : position où on va copier un élément conservé
    
    * Au départ rd = wr = 0
    
    * Tant que mot[rd] est différent de '\0' (indicateur de fin de chaine) :
       1- Déterminez si la lettre en position rd, mot[rd], doit être conservée.
          Elle est conservée si elle est différente des mot[i] pour i<rd ou si rd==0
       2- Si elle est conservée, copier mot[rd] dans mot[wr]; incrémenter wr
       3- Incrémenter rd
    
    * Ajouter '\0' en mot[wr]
    Remarques complémentaires :
    - gets() doit être abandonné au profit de fgets()
    - fflush(stdin) est non standard : voir les entrées dans notre FAQ C sur ce sujet

Discussions similaires

  1. Position d'une lettre dans un mot
    Par yannjuve dans le forum Général Python
    Réponses: 6
    Dernier message: 24/12/2020, 10h31
  2. Compter nombre de répétitions d'une lettre dans un texte saisi
    Par tabrouri2000 dans le forum Général Java
    Réponses: 2
    Dernier message: 09/07/2011, 02h10
  3. [Turbo Pascal] Trouver une lettre dans un mot
    Par lediamant dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 03/11/2009, 16h46
  4. Trouver une lettre dans un mot
    Par frankthechamp dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 27/04/2009, 23h23
  5. [PERL] connaitre la position d'une lettre dans un mot
    Par LE NEINDRE dans le forum Langage
    Réponses: 3
    Dernier message: 24/03/2006, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo