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++Builder Discussion :

Fonction qui supprime les espaces


Sujet :

C++Builder

  1. #1
    Membre expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Points : 3 249
    Points
    3 249
    Par défaut Fonction qui supprime les espaces
    Bonsoir,

    Je cherche à faire une fonction qui supprime les espaces dans une chaine donné, par exemple:

    StripSpace("Je code en C++ pour un projet de six mois");

    renvoi JecodeenC++pourunprojetdesixmois

    Pour le moment j'ai fait cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    AnsiString StripSpace(char cMsg[])
    {
            AnsiString asResult;
            int iMsgLength = strlen(cMsg);
            for (int i=0; i<iMsgLength ; i++)
            {
                    if (cMsg[i] != ' ')
                            asResult = asResult + cMsg[i];
            }
            return asResult;
    }
    La fonction marche mais me génère à la fin de la fonction une erreur d'exception de type pointeur incorrecte.


    J'ai cherché d'autre solution, mais en vain je vois pas pourquoi cette exception sort.

    PS: La fonction est stockée dans une DLL statique est ce que sa peut venir de là ?

    Existe t'il une fonction déja prete sous BCB6 ?

    Quelqu'un à une idée sur mon problème ?


  2. #2
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    tu peux peut être essayer la fonction StringReplace pour remplacer les espaces par rien du tout:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
           String TextWithSpaces  =  Edit1->Text;
           String TexteWithoutSpaces = StringReplace(TextWithSpaces," ","",TReplaceFlags()<<rfReplaceAll);
           Edit2->Text = TexteWithoutSpaces;
    }
    ce qui donnerait pour ta fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AnsiString StripSpace(char cMsg[])
    {
       String TextWithSpaces(cMsg);
       return StringReplace(TextWithSpaces," ","",TReplaceFlags()<<rfReplaceAll);
    }
    Bonne continuation.
    Djob.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Si c'est le retour de l'AnsiString qui pose problème, tu peux essayer
    de traiter le tableau directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void StripSpace(char *T)
    {
    char c;
    char *D = T;
    do{
        while(*T == ' ') T++;
        c = *T;
        *D = c;
        D++;
        T++;
        }while(c != 0);
    }
    A plus !

  4. #4
    Membre expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Points : 3 249
    Points
    3 249
    Par défaut
    de vos réponses.

    DJob: Ton code marche mais comme le mien declenche la meme exception soit au premier coup soit au second.


    Donc malgré que cette version est plus simple ne va pas.


    henderson: J'ai testé ton code et sa marche.

    Mon problème est résolu merci à vous deux

  5. #5
    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 : 39
    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
    Tant qu'à le faire sans trucs Borland :
    http://c.developpez.com/faq/cpp/?pag...INGS_erase_car

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

Discussions similaires

  1. [Free Pascal] Programme qui supprime les espaces inutiles dans une chaîne
    Par joreveur dans le forum Free Pascal
    Réponses: 18
    Dernier message: 24/08/2012, 16h51
  2. une fonction qui permet de supprimer les espaces
    Par inayatallah dans le forum Débuter
    Réponses: 5
    Dernier message: 03/01/2010, 17h36
  3. [XSLT] fonction qui supprime les espaces
    Par calin0o dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 30/07/2009, 08h47
  4. Fonction pour supprimer les espaces
    Par Levon dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/08/2007, 13h23
  5. fonction qui enleve les espace
    Par fraizas dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/03/2007, 12h18

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