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

Langage C++ Discussion :

case vide d'un tableau ?


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut case vide d'un tableau ?
    Bonjour

    J'ai 1 chaine de caractère de la taillemax=3

    chaine[taillemax]

    Quand je vais taper ma chaine par exemple , je sesirais " xy " au clavier . Doit je mettre une chose a la fin pour indiquer qu'il n'y a plus rien ?

    chaine[0]='x' et chaine[1]='y' chaine[2]= ?

    Dans ma chaine de caractère je peux mettre au maximum 3 caractères , mais si je n'en tape que 2 au lieu de 3 ?

    Admettons que je décide de faire une instruction si la chaine a bien 2 caractères alors faire tel instruction , sinon faire une autre instruction .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ( chaine[0]='x'   et chaine[1]='y'  chaine[2]= ? ) 
    {
    suite d'instructions
    }
    A la place du point d'interrogation rouge que doit mettre ? Un marqueur de fin du type "\0" ? Car il s'agit d'une case vide qui ne doit rien contenir et il y en a exactement 2 de rempli

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Si c'est pour gérer une chaine de caractères, il vaut vraiment mieux travailler avec des std::string, cela t'évitera bien des problèmes

    S'il s'agit de travailler avec un tableau de valeurs de n'importe quel type, il "suffit" de placer une valeur (n'importe laquelle ) que tu pourra tester et identifier comme étant une valeur "invalide".

    Ceci dit, le mieux reste quand meme d'utiliser les conteneurs de la STL (std::vector, par exemple) car ils connaissent le nombre d'éléments qu'ils contiennent, et que cela te facilitera grandement la tache (toute la gestion de la mémoire est déjà prise en compte, entre autre )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Invité
    Invité(e)
    Par défaut
    Effectivement je voulais parler d'une chaine de caractère et non d'un tableau

    Cela dit je ne dois pas utiliser le vector , car il est demander de faire avec un chaine dont le nombre limite de caractère et déterminé à l'avance

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    L'idéal reste, dans ce cas là, de manipuler une std::string, car c'est la classe par excellence pour la gestion des chaines de caractères.

    Si ton prof te demande de faire autrement, c'est un incompétent

    Ceci dit, comme je te vois mal aller le lui dire, il faut savoir que, typiquement, dans une chaine "C style", le caractère qui indique la fin de la chaine est le caractère nul ( '\0' ). Le mieux est donc sans doute de respecter cette convention, car cela te permettra d'utiliser les fonctions "C" de manipulation de chaines
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Citation Envoyé par koala01 Voir le message
    L'idéal reste, dans ce cas là, de manipuler une std::string, car c'est la classe par excellence pour la gestion des chaines de caractères.

    Si ton prof te demande de faire autrement, c'est un incompétent
    Ou alors qu’il veut simplement lui faire apprendre comment marchent les chaînes de caractères C, en les lui faisant refaire

    S’il s’agit d’un exercice, il n’y a aucun mal à passer du temps à recoder à la main des choses qui existent déjà, pour apprendre comment c’est fait. Bien sûr, dans le cadre d’un projet, on préfèrera se simplifier la vie avec std::string.

    Pour ton problème, la bonne solution est celle qu’a donnée Koala : le caractère '\0' (de valeur 0) est celui qu’on utilise usuellement pour terminer les chaînes de caractères.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    J'ai su coder impeccablement avec les \0 pour les cases vides de ma chaine

    Merci

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

Discussions similaires

  1. Supprimer une case vide d'un tableau
    Par Ahmad1994 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 17/02/2014, 11h31
  2. [Débutant] supprimer cases vides dans un tableau de cellules
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 4
    Dernier message: 01/08/2012, 20h47
  3. recherche d'une case vide dans un tableau
    Par Cherisch dans le forum Bioinformatique
    Réponses: 5
    Dernier message: 08/05/2009, 16h47
  4. Case vide dans un tableau
    Par argon dans le forum C
    Réponses: 12
    Dernier message: 17/09/2006, 17h18

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