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 fonction qui sépare les mots de la ponctuation


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Problème avec une fonction qui sépare les mots de la ponctuation
    Bonjour,
    J'ai créé un programme qui place chaque mot d'un texte dans un tableau tab0. Ce tableau contient k éléments. Le problème c'est que lors de l'analyse du texte il considère "Bonjour," comme un mot. Il n'y a pas de dissociation entre le mot et la virgule. J'ai donc crée une fonction ponctu qui va réaliser cette dissociation et qui va copier le mot "Bonjour," de tab0 dans deux cases d'un nouveau tableau tab00 : "Bonjour" sera dans une case et "," dans la case suivante.

    Le programme qui réalise ceci est à la fin du message. Toutefois, si le mot de tab0 contient plusieurs signes de ponctuation comme "est-il,", le programme va réussir à placer "est", "-" et "," dans des cases de tab00 mais il ne va pas mettre "il". Et je ne sais pas pourquoi.

    un autre exemple pour aider à comprendre le problème
    si le mot de tab0 est "bonjour,Tu.Il" voici ce qu'il y aura dans le nouveau tableau tab00 :
    tab00[l]="bonjour"
    tab00[l+1]=","
    tab00[l+2]=RIEN NE S'AFFICHE
    tab00[l+3]="."
    tab00[l+4]=RIEN NE S'AFFICHE

    Dès qu'il détecte une suite de caractère alphabétique pour la première fois, il n'est pas capable d'en redétecter si nécessaire.

    Si quelqu'un est capable de m'expliquer je le remercie. Ca fait 4 heures que je cherche la raison. merci d'avance.

  2. #2
    Membre chevronné
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 853
    Points : 2 166
    Points
    2 166
    Par défaut
    Au lieu de t'amuser a faire une fonction qui ira verifier si tes char* sont bien, il serait plus simple de directement tout bien mettre dans le char**. Je m'y prendrai de cette facon :

    - On compte le nombre de mot dans une phrase pour allouer le char**.
    - On parcourt la chaine, des que c'est pas un caractere alphanumerique, je garde la position, j'alloue un nouveau char* et je recopie.
    - Je parcours le char* tant que c'est pas un caractere alphanumerique, puis je recopie dans un nouveau char*.

    Et ainsi de suite. Il n'y a rien de bien complique et c'est beaucoup plus simple que de faire un mauvais parsing initial puis un deuxieme parsing qui lui demandera de reallouer de la memoire.

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

Discussions similaires

  1. problème avec une fonction qui affiche une page blanche
    Par piotrowski-s dans le forum Langage
    Réponses: 3
    Dernier message: 16/11/2012, 18h25
  2. [GD] Problème avec des fonctions qui créent des éléments dans une image.
    Par magnus2229 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/07/2011, 09h38
  3. Réponses: 2
    Dernier message: 29/07/2010, 21h58
  4. Réponses: 4
    Dernier message: 22/11/2009, 23h35
  5. Problème avec une fonction qui supprime un dossier
    Par Mo_Poly dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2008, 18h39

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