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 :

suppression d'un alphabet sur une ligne de texte


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut suppression d'un alphabet sur une ligne de texte
    bonjour,
    en fait je me suis tombé sur un exercice ,dont j'ai la solution,mais il ya des choses que je veux en fait discuter avec vous chers developpeurs:
    je donne tout d'abord le code(on veut ici supprimer les 'e')
    #include<stdio.h>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void main()
    { char TXT[201];
      int I,J;
      printf("entrer une ligne de texte de maximum 200 caractère\n");
      gets(TXT);
      for (J=0,I=0;TXT[I];I++)
    	 { TXT[J]=TXT[I];
              if (TXT[I]!='e') J++;}
      TXT[J]='\0';
      puts(TXT);
    }
    bon à l'interieur de la boucle for ,la premiere ligne TXT[I]=TXT[J],au début on a I=0 et J=0 et on affecte à TXT[J] le TXT[I],mais si la premiere lettre est 'e' ca va pas etre supprimer???
    j'attend vos commentaires
    merci!!

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    le code que j'ai construit moi (mais qui n'a pas pu etre excecuté)c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include<stdio.h>
    #include<string.h>
    void main()
    { char TXT[200];
      int i,j;
       j=0;
     for(i=0,strlen(TXT),i++)
       { scanf("%c",&TXT[i]);
          if (TXT[i]!='e')
                            TXT[j]=TXT[i];
                               j++;
                                           }

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Il serait bon que tu fasses des efforts pour obtenir un code bien indenté.
    Il serait bien aussi de régler le compilo pour qu'il râle lorsque tu écris
    void main().
    Un compilateur digne de ce nom ne devrait accpeter que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int main(void)
    ou
    int main(int argc, char *argv[]
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Il serait bon que tu fasses des efforts pour obtenir un code bien indenté.
    Il serait bien aussi de régler le compilo pour qu'il râle lorsque tu écris
    void main().
    Un compilateur digne de ce nom ne devrait accpeter que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int main(void)
    ou
    int main(int argc, char *argv[]
    je travaille sous visual basic ,et non sous dev C++,alors le code que vous venez de me donner je peux pas l'utiliser.

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    mais pourquoi vous voyez pas ,en le code que j'ai donné,que j ai fournit des efforts?

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    je travaille sous visual basic ,et non sous dev C++,alors le code que vous venez de me donner je peux pas l'utiliser.
    Tu écris du C avec visual BASIC ? Très fort...

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 104
    Par défaut
    Je dirais amalgamme entre Basic et Studio ?

  8. #8
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Tu écris du C avec visual BASIC ? Très fort...

  9. #9
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    bonjour,
    en fait je me suis tombé sur un exercice ,dont j'ai la solution,mais il ya des choses que je veux en fait discuter avec vous chers developpeurs:
    je donne tout d'abord le code(on veut ici supprimer les 'e')
    #include<stdio.h>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void main()
    { char TXT[201];
      int I,J;
      printf("entrer une ligne de texte de maximum 200 caractère\n");
      gets(TXT);
      for (J=0,I=0;TXT[I];I++)
    	 { TXT[J]=TXT[I];
              if (TXT[I]!='e') J++;}
      TXT[J]='\0';
      puts(TXT);
    }
    bon à l'interieur de la boucle for ,la premiere ligne TXT[I]=TXT[J],au début on a I=0 et J=0 et on affecte à TXT[J] le TXT[I],mais si la premiere lettre est 'e' ca va pas etre supprimer???
    j'attend vos commentaires
    merci!!
    C'est un peu prise de tête mais il est clair que le premier 'e' va être enlevé. Si la première lettre est un 'e', J n'est pas incrémenté, reste donc à 0, et TXT[0] sera égal à TXT[1]. And so on...
    Nota: votre code ne compile pas, des i à la place de I par exemple:
    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
    int main(void)
    {
        char TXT[201];
        int I,J;
        printf("entrer une ligne de texte de maximum 200 caractère\n");
        gets(TXT);
        for (J=0,I=0;TXT[I];I++)
        {
            TXT[J]=TXT[I];
            if (TXT[I]!='e') J++;
        }
        TXT[J]='\0';
        puts(TXT);
        return EXIT_SUCCESS;
    }

  10. #10
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Citation Envoyé par s-ehtp Voir le message
    bonjour,
    en fait je me suis tombé sur un exercice ,dont j'ai la solution,mais il ya des choses que je veux en fait discuter avec vous chers developpeurs:
    je donne tout d'abord le code(on veut ici supprimer les 'e')
    #include<stdio.h>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void main()
    { char TXT[201];
      int I,J;
      printf("entrer une ligne de texte de maximum 200 caractère\n");
      gets(TXT);
      for (J=0,I=0;TXT[I];I++)
    	 { TXT[J]=TXT[I];
              if (TXT[I]!='e') J++;}
      TXT[J]='\0';
      puts(TXT);
    }
    bon à l'interieur de la boucle for ,la premiere ligne TXT[I]=TXT[J],au début on a I=0 et J=0 et on affecte à TXT[J] le TXT[I],mais si la premiere lettre est 'e' ca va pas etre supprimer???
    j'attend vos commentaires
    merci!!
    les instructions en rouge ,je pense qu'ils doivent etre inversées,car,en premier lieu on teste le carectere et puis apres on affecte à TXT[J] ,TXT[I]
    qu'est ce que vous en pensez?

  11. #11
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Pour moi le code marche:

    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
    18
    19
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    { 
        char TXT[201];
        int I,J;
        printf("entrer une ligne de texte de maximum 200 caractère\n");
        gets(TXT);
        for (J=0,I=0;TXT[I];I++)
        {
             TXT[J]=TXT[I];
             if (TXT[I]!='e') J++;
        }
        TXT[J]='\0';
        puts(TXT);
     
        return 0;
    }
    _________________________________________
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    entrer une ligne de texte de maximum 200 caractère
    et voilà, le test est lancé!!
    t voilà, l tst st lancé!!

  12. #12
    Membre éclairé
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    j'ai pas dit que ce code ne marche pas,ca marche aussi pour moi,je suis en train de discuter la methode de resolution;
    et je veux savoir si les instructions ne doivent pas etre inversées?

  13. #13
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    En fait, ce qui se passe, c'est une copie de chaine. Chaque caractère est copié, même les e. Le seul truc, c'est que quand e est copié, on copie le caractère suivant par-dessus (en ne déplacant pas le J). L'amélioration que tu peux faire, c'est de ne pas copier les 'e'.

  14. #14
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Citation Envoyé par coyotte507 Voir le message
    En fait, ce qui se passe, c'est une copie de chaine. Chaque caractère est copié, même les e. Le seul truc, c'est que quand e est copié, on copie le caractère suivant par-dessus (en ne déplacant pas le J). L'amélioration que tu peux faire, c'est de ne pas copier les 'e'.
    Faites tourner, ça a l'air bon...

Discussions similaires

  1. div et innerHTML : tout sur une ligne?
    Par LineLe dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/04/2005, 11h15
  2. nombres d'images sur une lign automatique
    Par AnKhCHFR dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/03/2005, 11h52
  3. Lien sur une ligne de tableau
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2005, 11h36
  4. pointer sur une ligne d'un TStringGrid
    Par jeannot27 dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/10/2004, 10h56

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