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

SL & STL C++ Discussion :

Remplissage d'un string par des blancs


Sujet :

SL & STL C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 42
    Points : 24
    Points
    24
    Par défaut Remplissage d'un string par des blancs
    Bonjour tout le monde.

    Bon voilà j'ai un buffer au format
    char * Buffer;

    comme derrière j'utilise le buffer en cobol.
    j'ai besoin que mon buffer soit compléter par des blancs pour éviter des tailles de buffer différentes.

    Y'at'il une solution autre que mettre en dur les blancs dans le code ?
    On connait le nombre de blanc manquant.

    Merci d'avance pour vos réponses

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    tu veux pas allouer une taille specifique a ton pointeur ??

  3. #3
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    les char* c'est mal,
    les strings c'est mieux.
    http://c.developpez.com/faq/cpp/?pag...INGS_avantages

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    puisque ton buffer a une taille fixe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char Buffer[taillebuffer];

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    En fait, non c'est historique dans l'entreprise.

    Et au niveau cobol c'est plus simple de découper un buffer avec des tailles fixes, d'ou le remplissage par des blancs.

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    je vois pas trop la difficulte, tu remplis ton buffer avec tes donnees, puis tu complete avec des blancs jusqu'à la fin.
    ou est le soucis ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    bah tu te creer un constructeur de copie avec allocation memoire pour ton pointeur ... (new)

    Enfin jpens que j ai ptetre pas tt compris car la jvois pas de difficultes ...

  8. #8
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    j'ai besoin que mon buffer soit compléter par des blancs pour éviter des tailles de buffer différentes.
    :

    blancs == espaces ? ' ' ?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    oui des espaces, le problème est que les blancs peuvent etre avec un nombre conséquents

    Je me vois mal mettre un sprintf(buffer,"%s"," ")
    donc je me demandais si il existait pas une fonction ou un moyen plus simple pour faire ca !

  10. #10
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 778
    Points
    5 778
    Par défaut
    Citation Envoyé par hunter001
    Je me vois mal mettre un sprintf(buffer,"%s"," ")
    donc je me demandais si il existait pas une fonction ou un moyen plus simple pour faire ca !
    tu connais le nombre de donnees que tu a mises dans ton buffer (exemple : 20), il te suffit de faire une boucle qui remplisse avec des ' ' chaque element de ton buffer depuis 20 à taillemax.

  11. #11
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        int i_taille(20);
        char * Buffer;
        Buffer = new char[i_taille];
        char * pt_Buffer= Buffer;
        for(int i=i_taille;i--;)
              *(pt_Buffer++)=' ';
    Si besoin du \0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        int i_taille(20);
        char * Buffer;
        Buffer = new char[i_taille];
        char * pt_Buffer= Buffer;
        for(int i=i_taille-1;i--;)
              *(pt_Buffer++)=' ';
        *pt_Buffer='\0';

  12. #12
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include <algorithm>
     
    char* Buffer = new char[Taille]; // les string c'est mieux...
    std::fill_n(Buffer, Taille, ' ');

  13. #13
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    Oui, ou éventuellement les vecteurs pour communiquer via des trucs comme des sockets.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::vector<char> buffer(taille, ' ');
    char * p = &buffer[0];

Discussions similaires

  1. [XSLT] XML -> TXT : Complétion par des blancs ?
    Par Francalex dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 14/10/2009, 12h12
  2. script pour remplacer des caractères par des blancs
    Par floctc dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2009, 17h44
  3. Réponses: 5
    Dernier message: 11/01/2007, 10h35
  4. Réponses: 3
    Dernier message: 12/09/2006, 13h53
  5. Réponses: 4
    Dernier message: 25/07/2006, 18h37

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