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 :

creation de fonction


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut creation de fonction
    bonjour a tous
    alors voila j'ai fait un programme qui marche trés bien!!
    ce programme remplace des morceau de chaine par d'autres!!
    mais le probleme maintenan est que j'ai envie de cree cette fonction puisque je doit l'utiliser plusieur fois!!


    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    #include <stdio.h>
    main()
    {
     /* Déclarations */
     char SUJ[100]; /* chaîne à transformer */
     char CH1[100]; /* chaîne à rechercher  */
     char CH2[100]; /* chaîne de remplacement */
     char FIN[100]; /* chaîne de sauvegarde pour */
                    /* la fin de SUJ. */
     int I;      /* indice courant dans SUJ */
     int J;      /* indice courant dans CH1 et CH2 */
     int K;      /* indice d'aide pour les copies  */
     int TROUVE; /* indicateur logique qui précise */
                 /* si la chaîne OBJ a été trouvée */
     
     /* Saisie des données */
     printf("Introduisez la chaîne à rechercher  CH1 : ");
     gets(CH1);
     printf("Introduisez la chaîne à remplacer   CH2 : ");
     gets(CH2);
     printf("Introduisez la chaîne à transformer SUJ : ");
     gets(SUJ);
     
     /* Recherche de CH1 dans SUJ */
     TROUVE=0;
     for (I=0; SUJ[I] && !TROUVE; I++)
        if (SUJ[I]==CH1[0])
            {
             for (J=1; CH1[J] && (CH1[J]==SUJ[I+J]); J++)
                ;
             if (CH1[J]=='\0') TROUVE=1;
            }
     
     
     /* Si CH1 a été trouvée dans SUJ alors sauvegarder la fin */
     /* de SUJ dans FIN, copier ensuite CH2 et FIN dans SUJ.   */
     if (TROUVE)
        {
         I--;
         /* Maintenant  I indique la position de CH1 */
         /* dans SUJ et J indique la longueur de CH1 */
         /* Sauvegarder la fin de SUJ dans FIN */
         for (K=0; SUJ[K+I+J]; K++)
              FIN[K]=SUJ[K+I+J];
         FIN[K]='\0';
         /* Copier CH2 dans SUJ */
         for (K=0; CH2[K]; K++,I++)
              SUJ[I]=CH2[K];
         /* Recopier FIN dans SUJ */
         for (K=0; FIN[K]; K++,I++)
              SUJ[I]=FIN[K];
         /* Terminer la chaîne SUJ */
         SUJ[I]='\0';
        }
     
     /* Affichage du résultat */
     printf("Chaîne résultat : \"%s\"\n", SUJ);
     return 0;
    }


    Je sais qu'il faut utiliser les pointeur pour pouvoir retourner une chaine de caractere!!

    Mais je ne maitrise pas beaucoups les pointeur!!

    Alors pour ceux qui ont une piste pour mon probleme!!
    merci!!!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut
    encore quelque precision!!

    ma fonction devrat avoir 3 parametre

    et pourra etre utiliser de cette maniere!!

    chaine=regsub("homme","un homme c'est bien","femme");

    le resultat dans chaine sera alors
    "un femme c'est bien"

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Les spécifications sont insuffisantes :
    • Que doit-il se passer si les deux chaînes n'ont pas la même longueur ?
      • Et si la nouvelle longueur est supérieure ?


    De plus, tu utilises gets().
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut
    mon programme marche tres bien!!

    c'est a dire que je peux changer un mot de type "chat" (4 caracteres)
    avec "cheval"(6 caracteres).

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Donc, ça allonge la chaîne.
    Le retour doit donc forcément se faire par allocation dynamique.
    Et si je comprends bien tes sources, seule la première occurence de la chaîne doit être remplacée.

    J'ai bon ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut
    bein entendu dans la fonction regsub il n'y aura plus de gets

    si quelqu'un pouvait m'aider ce serait geniale!

    je rapelle mon probleme cree une fonction qui retoune une chaine de caracter!!

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 102
    Par défaut
    c 'est exactement ca !!!

    merci d'avoir pris le temps de bien lire les codes source!!

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

Discussions similaires

  1. Creation de fonctions : ERROR 1415 (0A000)
    Par Gigi75 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 23/08/2011, 14h36
  2. [FPDF] creation de fonction
    Par KiranoO dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/03/2009, 23h48
  3. creation de fonction et appel via une autre classe
    Par oceane751 dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2008, 23h26
  4. creation des fonctions
    Par old zbair dans le forum Excel
    Réponses: 2
    Dernier message: 29/03/2007, 20h55
  5. creation des fonctions
    Par zoheir_hm dans le forum Oracle
    Réponses: 2
    Dernier message: 12/04/2006, 10h28

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