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 :

Problème avec une boucle for


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Par défaut Problème avec une boucle for
    Bonjour, j'ai un problème surement simple mais je comprend pas d'où il viens.

    J'ai une boucle for pour remplacer tout les caractères( qui sont des ' ') d'une chaine a par des '*' et j'ai une autre chaine b qui elle, ne dois pas changer.

    La chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    char a[] = {0};
    char b[] = {0};
     
    choisirMot(b); //fonction qui me donne une chaine b
     
    longueurChaine = strlen(b);
     
    printf("%s",b);
     
    for (i=0; i <= longueurChaine; i++)  a[i]= '*';
     
    printf("%s",b);
    Sauf que quand j'exécute ce code, ma chaine b est aussi modifiée.
    J'ai mis des printf avant et après pour voir d'où venais le problème et comme résultat j'ai
    Le problème c'est que je ne veux pas modifier b dans ma boucle mais il est quand même modifié.

    Je suis en DUT informatique donc je connais quand même l'algorhythmique donc voila, si quelqu'un peux m'aider

  2. #2
    Expert confirmé
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char a[] = {0};
    char b[] = {0};
    Ceci va créer deux tableaux et chaque tableau fait 1 caractère
    choisirMot(b); n'a donc le droit de mettre dans b qu'un caractère à savoir le '\0' terminal.

    choisirMot(b) va écrire en dehors du tableau et le résultat devient alors indéterminé.
    Même chose plus bas avec a[i] = '*'

    Tester le programme avec, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char a[256] = {0};
    char b[256] = {0};

  3. #3
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Par défaut
    Merci c'était bien ca le problème.

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

Discussions similaires

  1. Problème avec une boucle for
    Par Zaza91280 dans le forum MATLAB
    Réponses: 12
    Dernier message: 13/05/2010, 17h56
  2. Problème avec une boucle for
    Par nostalamigo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/03/2009, 23h26
  3. Réponses: 6
    Dernier message: 26/11/2007, 15h25
  4. problème avec une boucle For
    Par mademoizel dans le forum ASP
    Réponses: 3
    Dernier message: 24/03/2007, 13h20
  5. Problème avec une boucle for
    Par cisse18 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 29/03/2006, 16h50

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