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 :

Compter le nombre de caractères différents dans une chaîne saisie


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut Compter le nombre de caractères différents dans une chaîne saisie
    pour commencer mon code source

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    #include <string.h>
    #include <stdio.h>
    #include <ctype.h>
     
    void main()
    {
    char chaine[100];
    char i,j;
    int k=0;
     
     
    printf("Veuillez entre une chaine de caractere de longueur max 100\n");
    scanf("%s",chaine);
    printf("vous avez rentre : %s",chaine);
     
    getchar();
     
    for(i=0;i<strlen(chaine);i++)
    {
                         for(j=i;j<strlen(chaine);j++)
                         {
           	                      if( tolower(chaine[j]) == tolower(chaine[i]) )
     		              {
     		              k++;
     		              }
                         }
     printf("\nvous avec entre %c ou %c : %d fois",tolower(chaine[i]),toupper(chaine[i]),k);
     k=0;
    }
     
    getchar();
    getchar();
    }
    dans la première partie du code il y a la saisie d'une chaine de caractère, dans la seconde un comptage de chaque caractère présent dans celle-ci, mais le problème c'est que je ne sais pas comment ignoré un caractère déjà compter (si vous me comprenez pas je peu vous faire une screen)
    si quelqu'un pouvais me mettre sur le chemin, sa serais mimi

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Le but est de compter le nombre de caractère différent dans une chaine de caractère saisie?

  3. #3
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    Citation Envoyé par Crayon
    Le but est de compter le nombre de caractère différent dans une chaine de caractère saisie?
    je croie que le but est de compter le nombre de caractère différent et combien de foie il apparaissent chacun

  4. #4
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    pourquoi ne pas les ramplacer par des caractaires non utilisé ?

  5. #5
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include <string.h>
    #include <stdio.h>
    #include <ctype.h>
     
    void main()
    {
       char chaine[100];
       char i,j;
       int k=1,taille;
     
     
       printf("Veuillez entre une chaine de caractere de longueur max 100\n");
       scanf("%s",chaine);
       printf("vous avez rentre : %s",chaine);
     
       getchar();
     
       taille = strlen(chaine);
       for(i=0;i<taille;i++)
       {
          if(chaine[i] != '\0')
          {
             for(j=i+1;j<taille;j++)
             {
                if( tolower(chaine[j]) == tolower(chaine[i]) )
                {
                   chaine[j] = '\0';
                   k++;
                }
             }
             printf("\nvous avec entre %c ou %c : %d fois",tolower(chaine[i]),toupper(chaine[i]),k);
             k=1;
          }
       }
     
       getchar();
       getchar();
    }
    par contre a quoi sert la fonction tolower ?

  6. #6
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Ekinoks->
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for(j=i+1;j<taille;j++)
             {
                if( tolower(chaine[j]) == tolower(chaine[i]) )
                {
                   chaine[j] = '\0';
                   k++;
                }
             }
    Mettre le caractère de fin de chaine n'est pas une bonne idée.

    par contre a quoi sert la fonction tolower ?
    Ca permet de convertir un caractère en minuscule.

    De plus, il aurait pu être possible de convertir toute le chaine de caractères en minuscule grâce à la fonction CharLower().

  7. #7
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    mais le problème c'est que je ne sais pas comment ignoré un caractère déjà compter
    Dans un autre tableau de char, je mémoriserais les caractères lus. A l'aide de la fonction strchr(), je viendrais comparer l'élément à compter avec la chaine des caractères lus pour savoir si cela a été déjà fait. Si c'est déjà fait, je l'ignore et je passe au suivant.
    C'est une solution qui me vient à l'esprit!

  8. #8
    Membre éclairé Avatar de Ekinoks
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    687
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 687
    Par défaut
    ho ! dans se cas un autre caractère différent de '\0' non utilisé ^^ ou bien recréé sa propre fonction tolower

  9. #9
    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 homeostasie
    De plus, il aurait pu être possible de convertir toute le chaine de caractères en minuscule grâce à la fonction CharLower().
    A condition que tu fournisses le code de cette fonction non standard.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 7
    Par défaut
    merci Ekinoks !
    par contre faut que je rejoute de quoi ignoré les espace maintenant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Compter le nombre de noms différents dans une colonne
    Par mcog2 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 02/12/2015, 08h34
  2. Compter le nombre de caractères contenus dans une balise HTML
    Par adissa357 dans le forum Général Java
    Réponses: 2
    Dernier message: 16/10/2013, 13h19
  3. [XL-2007] Compter le nombre de valeurs différente dans une colonne
    Par Mist-e-Fire dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/04/2013, 09h01
  4. Réponses: 1
    Dernier message: 22/05/2012, 19h15
  5. URGENT - Nombre d'enregistrements différents dans une table
    Par Jeankiki dans le forum Bases de données
    Réponses: 6
    Dernier message: 11/08/2004, 15h51

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