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 :

Répartition et comparaison d'un tableau de char


Sujet :

C

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    45
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 45
    Points : 26
    Points
    26
    Par défaut Répartition et comparaison d'un tableau de char
    Bonjour,
    j'aimerai bien connaitre comment repartir un tableau de chaine de caractère et le comparer en utilisant strcmp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char unite[25][10]={"","un","deux","trois","quatre", "cinq", "six", "sept", "huit","neuf"};

    ...
    en utilisant le boucle for: comment et ou initialiser i et jusqu'à ou?
    et ce que cela est juste?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(i=unite[0];i>unite;i++)
    if strcmp(l1,unite[i]
    veuillez jeter un coup d'œil pour avoir un peut d'idée
    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
    #include<stdio.h>
    #include<string.h>
    #include<conio.h>
     
     main()
    {
    char l1[50],l2[50],l3[50],l4[50], lettre[256];
    char *espace = " ";
    char unite[25][10]={"","un","deux","trois","quatre", "cinq", "six", "sept", "huit","neuf"};
    char dizaine[11][20]={"","","vignt","trente","quarante","cinquante","soixante","soixante-dix","quatre-vignt","quatre-vignt-dix"};
    char centaine[5][9]={"cent","cents"};
    int s,i;
    strcpy(lettre,"");
    printf("donner une chiffre literalement\n");
    scanf("%s\n",&l1);
    scanf("%s\n",&l2);
    scanf("%s\n",&l3);
    scanf("%s\n",&l4);
     
    strcat(lettre,l1);
    strcat(lettre,espace);
    strcat(lettre,l2);
    strcat(lettre,espace);
    strcat(lettre,l3);
    strcat(lettre,espace);
    strcat(lettre,l4);
     
    printf("%s\n",lettre);
     
    for(i=unite[0];i>unite;i++)
    if strcmp(l1,unite[i])//bien sur c pas encore complet
     
    getch();
    return 0;
    }
    si c faut comment elle devienne alors?
    merci d'avance.

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char unite[25][10]={"","un","deux","trois","quatre", "cinq", "six", "sept", "huit","neuf"};
    Pourquoi 25 ? il y a 10 chaines.
    Si on veut faire varier le nombre de chaines dans des versions ultérieures du programme, on peut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char unite[][10]={"","un","deux","trois","quatre", "cinq", "six", "sept", "huit","neuf"};
    // le nombre de chaines peut alors être obtenu par
    size_t NbUnites = sizeof unite/sizeof unite[0] ;
    Pour la comparaison, on fera alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for(i=0;i<NbUnites ;i++)
        if (strcmp(l1,unite[i])==0) .....
    Sur le code :
    1-est obsolète : On doit explicitement spécifier le type de retour :
    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    strcpy(lettre,"");
    ....
    strcat(lettre,l1);
    strcat(lettre,espace);
    strcat(lettre,l2);
    strcat(lettre,espace);
    strcat(lettre,l3);
    strcat(lettre,espace);
    strcat(lettre,l4);
    peut être remplacé avantageusement par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sprintf(lettre, "%s %s %s %s",l1,l2,l3,l4);
    3- getch(); n'est pas standard. On peut utiliser getchar() pour éviter que la fenêtre ne se ferme intempestivement.

Discussions similaires

  1. decalage à gauche sur une tres grand tableau de char
    Par petitours dans le forum C++Builder
    Réponses: 10
    Dernier message: 14/07/2005, 22h40
  2. retrouver unesuite de caractères dans un tableau de char
    Par petitours dans le forum C++Builder
    Réponses: 17
    Dernier message: 12/07/2005, 23h43
  3. Ansistring et tableau de char
    Par rabbi_jaccob dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/12/2004, 11h51
  4. Adresse d'un tableau de char
    Par Trap D dans le forum C
    Réponses: 8
    Dernier message: 23/12/2003, 12h02
  5. Réponses: 4
    Dernier message: 10/10/2003, 18h04

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