chaîne de caractère
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

chaîne de caractère



  1. #1
    invite9c4bf030

    Cool chaîne de caractère


    ------

    bonjour ,

    le programme suivant ,que j'ai fait , il aide à la conjugaison des verbe du 1er groupe , mais je sais pas c'est quoi le problème , parce qu'il ne veut pas se compiler

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    void saisiverbe(char verbe[30])
    {
    
        printf("donner un verbe qui appartient au 1er groupe");
        scanf("%s",verbe);
    }
    
    int appartennance(char verbe[30])
    {
        int i,l;
        saisiverbe(verbe);
        for(i=0;verbe[i];i++);
        l=i;
        if(verbe[l-2]!='e' || verbe[l-1]!='r')
        return 0 ;
        else
        return 1;
    
    }
    
    int taille(char verbe[30])
    {
        int i, l;
        for(i=0;verbe[i];i++);
        l=i;
        return(l);
    
    
    }
    
    void auxavoir(char verbe[30])
    {
       int l;
       char affi[30];
       l= taille(verbe);
       getchar();
       affi[0]='\0';
    
            affi[0]='e';
            affi[1]='\0';
            printf("j'ai %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("tu as %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("il/elle a %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("nous avons %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("vous avez %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("ils/elles ont %s%s \n",verbe,affi);
    
    
    
    }
    
    void auxetre(char verbe[30])
    {
       int l;
       char affi[30];
       l= taille(verbe);
       getchar();
       affi[0]='\0';
    
            affi[0]='e';
            affi[1]='\0';
            printf("je suis %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("tu es %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("il/elle est %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("nous sommes %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("vous êtes %s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("ils/elles sont %s%s \n",verbe,affi);
    
    
    }
    
    void conjugueverbe(char verbe[30])
    {
       int l,p,c,a,e;
       char affi[30];
       char choix,choixaux;
       l= taille(verbe);
       verbe[l-2]='\0';
       printf("%s \n",verbe);
       getchar();
       printf("donner votre choix :\n");
       scanf("%c",&choix);
       affi[0]='\0';
    
        if (choix == 'p')
        {
            printf("présent de l'indicatif:");
            affi[0]='e';
            affi[1]='\0';
            printf("%s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='s';
            affi[2]='\0';
            printf("%s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='\0';
            printf("%s%s \n",verbe,affi);
            affi[0]='o';
            affi[1]='n';
            affi[2]='s';
            affi[3]='\0';
            printf("%s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='z';
            affi[2]='\0';
            printf("%s%s \n",verbe,affi);
            affi[0]='e';
            affi[1]='n';
            affi[2]='t';
            affi[3]='\0';
            printf("%s%s \n",verbe,affi);
        }
        else if(choix=='c')
         {
           printf("choisisez l'auxilière:");
           scanf("%c",&choixaux);
           choixaux=getchar();
           printf("passé composé de l'indicatif:\n\n");
    
    
           if(choixaux=='a')
           {
            auxavoir(verbe);
    
           }
           else if (choixaux=='e')
           {
            auxetre(verbe);
    
           }
    
        }
    
    }
    
    
     main()
    {
        char verbe [30];
        int choix;
    
        printf("taper 1 pour saisir le verbe \n ");
        printf("taper 2 pour savoir s'il est un verbe de 1er groupe \n");
        printf("taper 3 pour conjuguer le verbe \n");
        printf("taper 4 pour sortir \n");
        scanf("%d",&choix);
    
    
        switch(choix)
        {
            case '1':
                  saisiverbe(verbe);
            break;
    
            case '2':
             do {
                         saisiverbe(verbe);
    
                         appartennance(verbe);
                        }while(appartennance(verbe)!=1);
    
    
    
             break;
    
             case '3': conjugueverbe(verbe);
             break;
    
             case '4': printf("fin");
             break;
    
            default : printf("choix erronne");
    
    
    
        }
    
    
    
    }
    merci pour votre aide , cordialement

    -----
    Dernière modification par JPL ; 25/03/2012 à 17h36. Motif: Ajout de la balise Code pour garder l'indentation

  2. #2
    lucas.gautheron

    Re : chaîne de caractère

    Bonjour,

    merci d'utiliser les balises code. Là c'est quand même pénible à lire.
    Et rien ne t'interdit de poster les messages d'erreur que tu obtiens lors de la compilation;

    A+,

  3. #3
    whoami

    Re : chaîne de caractère

    Bonjour,
    Citation Envoyé par lucas.gautheron Voir le message
    Et rien ne t'interdit de poster les messages d'erreur que tu obtiens lors de la compilation;
    Et avant cela, de les lire et chercher à les comprendre !

  4. #4
    invite9c4bf030

    Re : chaîne de caractère

    moi je veux seulement savoir l’erreur que j'ai fait , parce qu'on me dit qu'il ya pas d'erreures 0 erreurs 0 warning

  5. A voir en vidéo sur Futura
  6. #5
    invite4492c379

    Re : chaîne de caractère

    C'est assez illisible ...

    S'il ne compile pas c'est qu'il y a au moins un message d'erreur.
    Par contre s'il compile et qu'il ne s'exécute pas c'est autre chose. Pourrais-tu être plus précise quant au comportement ?
    Rajoute les options de compilations pour que le compilo émette plus de warning ...
    Quel est ton environement ? Linux/Windows/Mac ?
    Quel est ton compilateur ? gcc/microsoft ?
    Quel est ton IDE ? VStudio/Notepad/....


    Remarque : en ne regardant que la fin de ton code, je vois que tu scanf choix, un entier (%d). Tu le compares ensuite aux caractères '1', '2', ... au lieu de le comparer aux entiers 1,2,3 ...
    Cela n'est pas en soit une erreur, car les caractères '1','2','3' ont pour valeur décimale 48,49,50,... mais cela ne répond pas au comportement que tu désires implémenter.

  7. #6
    invite9c4bf030

    Re : chaîne de caractère

    merci beaucoup pour ton aide

    voila j'ai rectifié certain trucs et ça marche merci infiniment

    Code:
     main()
    {
        char verbe [30];
        char choix;
    
        printf("taper a pour saisir le verbe \n ");
        printf("taper b pour savoir s'il est un verbe de 1er groupe \n");
        printf("taper c pour conjuguer le verbe \n");
        printf("taper d pour sortir \n");
        scanf("%c",&choix);
    
    
        switch(choix)
        {
            case 'a':
                  saisiverbe(verbe);
            break;
    
            case 'b':
             do {
                         saisiverbe(verbe);
    
                         appartennance(verbe);
                        }while(appartennance(verbe)!=1);
    
    
    
             break;
    
             case 'c': conjugueverbe(verbe);
             break;
    
             case 'd': printf("fin");
             break;
    
            default : printf("choix erronne");
    
    
    
        }
    
    
    
    }
    Dernière modification par JPL ; 25/03/2012 à 17h34. Motif: Ajout de la balise Code pour garder l'indentation

  8. #7
    invitea8d03b1e

    Post Re : chaîne de caractère

    C'est quoi ce "produit" qui vous donne 0(erreur) et 0(warning) ????

    Code:
    g++ test2.c++ -Wall -o xtest
    test2.c++: In function ‘void conjugueverbe(char*)’:
    test2.c++:98: warning: unused variable ‘p’
    test2.c++:98: warning: unused variable ‘c’
    test2.c++:98: warning: unused variable ‘a’
    test2.c++:98: warning: unused variable ‘e’
    test2.c++: At global scope:
    test2.c++:161: warning: ISO C++ forbids declaration of ‘main’ with no type
    ... int main(...) {}

    j'ai pas vu la différence (soupir), si vous êtes satifsait comme ça

Discussions similaires

  1. Probleme de chaine de caractere
    Par cedric300 dans le forum Électronique
    Réponses: 21
    Dernier message: 17/01/2012, 13h49
  2. chaine de caractère
    Par dalida1111 dans le forum Programmation et langages, Algorithmique
    Réponses: 27
    Dernier message: 01/01/2012, 17h38
  3. chaîne de caractère
    Par dalida1111 dans le forum Programmation et langages, Algorithmique
    Réponses: 15
    Dernier message: 01/01/2012, 15h06
  4. Lire chaine de caractère
    Par invite8b421ec7 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 31/01/2011, 21h06
  5. Chaine de caractère C++
    Par invitee5fedd72 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 06/03/2008, 20h29