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 :

Utilisation de gets et de isspace !


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Par défaut Utilisation de gets et de isspace !
    Comment à l'aide d'une fonction je peux supprimer les espaces (’\t’,’\n’,’ ’) présents au début d’une chaine?

    J'aimerai pouvoir lire la chaine avec la fonction gets mais aussi utiliser la fonction isspace de la bibliothèque ctype.h

  2. #2
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Je te conseille d'utiliser fgets plutôt que gets

    Pour les supprimer il suffit de faire une boucle (si tu veux faire toute la chaîne) ou alors de tester que le premier caractère (ce que tu veux apparemment) et de décaler ta chaîne à gauche chaque fois que tu rencontres un espace.
    isspace renvoie 0 si ce n'est pas un espace, tabulation etc...
    Une valeur non null autrement.

  3. #3
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Ce lien parle d'un probleme assez proche du tien. J'espere que tu pourra t'en inspirer :

    http://www.developpez.net/forums/d83...aille-tableau/

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Par défaut
    Peut-être je n'ai pas très bien compris mais ce n'est pas vraiment ce que je cherche à faire. Je ne veux pas analyser un tableau de caractères mais une chaine de caractère.

    Comment faire avec fgets et isspace?
    Je n'ai pas très bien compris le fonctionnement de isspace.
    Fgets se défini comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    char chaine[20] ;
    fgets (chaine,taille,stdin) ; //taille <= 19
    – chaˆıne est un tableau de caract`eres.
    – taille est le nombre de caract`eres de chaˆıne.
    La fonction fgets rend NULL en cas d’erreur.
    d'après ce que j'ai compris mais je ne sais pas comment le réutiliser

  5. #5
    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
    Je ne veux pas analyser un tableau de caractères mais une chaine de caractère.
    En C une chaine de caractères est un tableau de caractères terminé par '\0'

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 147
    Par défaut
    Ok, je vais essayer d'écrire un programmme mais je veux bien que vous me le corrigiez par contre !

  7. #7
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Citation Envoyé par Lenou Voir le message
    Ok, je vais essayer d'écrire un programmme mais je veux bien que vous me le corrigiez par contre !



    Euh, c'est quoi ca ?

    On est la pour t'aider, mais on a aucune obligation.

    Pour revenir au lien que je t'ai donner. Il va falloir modifier le code : c'est a dire que dans le code, si deux case contigue contienne '\' et '0', on les fusionne, toi ce que tu veux faire, c'est si UNE case contient un caratere particulier ('\0' ...) tu veux la SUPPRIMER (et non la fusionner).

    A toi d'adapter tout ca avec ce que tu as sous la main.

    Par contre, isspace je connais pas, pourquoi veut tu absolument l'utiliser ?

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Tu as essentiellement trois stratégies:
    1. Tu lis chaîne entrée par l'utilisateur caractère par caractère à l'aide de fgetc() et tu ignores les caractères d'espacement en début de chaîne.
    2. Tu lis la chaîne entrée par l'utilisateur à l'aide de fgets(), tu repères la position du premier caractère différent d'un espace en testant chaque caractère avec isspace(). Ensuite, tu déplaces la queue de la chaîne en première position à l'aide memmove().
    3. Tu lis la chaîne entrée par l'utilisateur à l'aide de fgets(), tu repères la position du premier caractère différent d'un espace en testant chaque caractère avec isspace(). Ensuite tu affectes l'adresse de ce caractère à un pointeur de type pointeur sur char que tu pourras ensuite utiliser pour accéder à la chaine sans les espaces de tête.


    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

Discussions similaires

  1. Pop up avec parametre php ? pour une utilisation avec get
    Par bullrot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/12/2008, 13h17
  2. Réponses: 2
    Dernier message: 03/07/2008, 11h09
  3. [VBA] Utilisation des gets pour une classe de classe
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/07/2007, 21h30
  4. [Configuration] utilisation du GET
    Par jeremy_chauvel dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 07/12/2006, 01h32
  5. comment utiliser cin.get (c)
    Par peneloppe dans le forum SL & STL
    Réponses: 5
    Dernier message: 03/11/2006, 17h31

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