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 :

Erreur dans mon programme que je n'arrive pas à corriger


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Erreur dans mon programme que je n'arrive pas à corriger
    Bonjour, je viens d'écrire un programme dont voici l'énoncé :

    Ecrire une fonction qui permet de remplacer un caractère par un autre dans une chaine de caractère. La chaine et les 2 caractères sont passés en paramètre. La fonction retourne le nombre de résultats.

    Voici mon programme :

    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
    #include<stdio.h>
    #include<string.h>
    char remplacement(char chaine[], char car, char car1);
     
    int main(void)
    {
    char resultat;
    char chaine, car, car1;
     
    printf("Ecrivez votre chaine de caracteres\n");
    scanf("%s", chaine);
    printf("Entrez le caractere qui doit etre remplace\n");
    scanf("%c", car);
    printf("Entez le nouveau caractere\n");
    scanf("%c", car1);
     
    resultat=remplacement(chaine,car,car1);
     
    printf("Le caractere %c va etre remplace par %c", car, car1);
    printf("La phrase finale donne : %s \n" , resultat);
    }
     
     
    char remplacement(char chaine[], char car, char car1);
     
    {
    int i;
    int nbrreplace;
    int nb=0;
     
    nbrreplace=strlen(chaine)
     
     for (i=0; i<nbrreplace ; i++)
    	  {
    		   if(chaine[i] == car)
    		     {
    		     chaine[i]=car1;
    		     nb=nb+1;
      		     }
    	  }
     
    return chaine;
    }
    Mon compilateur m'indique 2 erreurs (l26 et 43)... Je ne comprends pas comment les corriger. Quelqu'un aurait-il la solution ?

    Merci par avance.

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 44
    Points : 20
    Points
    20
    Par défaut
    Hello,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbrreplace=strlen(chaine) <= manque le ";"
    Pour le prototypage met juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char remplacement(char *, char, char);
    Pour la déclaration de "remplacement", enlève le ";" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char remplacement(char *chaine, char car, char car1)
    {
    // code
    }
    Dans ton main, chaine est définit en tant que char et non pas char *

    Remplacement retourne une chaine de caractère, pas un char (donc char *remplacement(..))

    Voila qui devrait t'aider un peu...

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 143
    Points : 169
    Points
    169
    Par défaut
    Ajoute aussi cela :

    La fonction retourne le nombre de résultats.
    Or ce n'est pas ce que tu fais :
    Tu devrais plutôt :

  4. #4
    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
    1
    2
    3
    4
    5
    6
    7
    8
    char chaine, car, car1;
     
    printf("Ecrivez votre chaine de caracteres\n");
    scanf("%s", chaine);
    printf("Entrez le caractere qui doit etre remplace\n");
    scanf("%c", car);
    printf("Entez le nouveau caractere\n");
    scanf("%c", car1);
    - chaine doit être un tableau de caractères (suffisamment grand pour contenir la plus grande chaine susceptible d'être entrée).
    - Dans un scanf, il faut mettre l'adresse de destination :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char chaine[valeur adéquate] ;
    char car, car1;
     
    printf("Ecrivez votre chaine de caracteres\n");
    scanf("%s", chaine);
    printf("Entrez le caractere qui doit etre remplace\n");
    scanf("%c", &car);
    printf("Entez le nouveau caractere\n");
    scanf("%c", &car1);

Discussions similaires

  1. Erreurs dans mes tables que je n'arrive pas à corriger
    Par simondu43 dans le forum Débuter
    Réponses: 2
    Dernier message: 18/05/2009, 22h03
  2. je ne trouve pas l'erreur dans mon programme
    Par Briska dans le forum Débuter
    Réponses: 19
    Dernier message: 04/04/2008, 09h21
  3. [Help] Erreurs dans mon programme
    Par Tacha dans le forum Langage
    Réponses: 13
    Dernier message: 02/10/2006, 13h57
  4. Réponses: 5
    Dernier message: 14/05/2006, 22h41
  5. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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