begin process at 2012 02 13 01:16:22
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caractères

 > LES FONCTIONS TRIM, RTRIM ET LTRIM DE VB EN C++ ( CHAINE DE CARACTÈRE )

LES FONCTIONS TRIM, RTRIM ET LTRIM DE VB EN C++ ( CHAINE DE CARACTÈRE )


 Information sur la source

Note :
6,75 / 10 - par 4 personnes
6,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaîne de caractères Classé sous :chaîne, caractères, trim Niveau :Débutant Date de création :11/07/2001 Date de mise à jour :18/05/2007 02:22:34 Vu / téléchargé :34 470 / 203

Auteur : NitRic

Ecrire un message privé
Site perso
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Il n'y à pas grand chose à dire... c'est seulement pour enlever les espaces à la droite(RTrim), à la gauche(LTrim) ou à gauche et à droite(Trim) dans une chaine... à première vue ca l'aire compliqué, il parraît y avoir beaucoup de code et tout... mais enlevé les commentaires et la fonction main() et il n'y auras presque plus rien :P  

Source

  • // Fichiers à inclure
  • #include <string.h>
  • #include <stdio.h>
  • // Prorotypes
  • void Trim(char *String); // Enlever les espaces à gauche et à droite dans une chaine
  • void RTrim(char *String); // Enlever les espaces à droite dans une chaine
  • void LTrim(char *String); // Enlever les espaces à gauche dans une chaine
  • /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  • // Entré du programme
  • int main()
  • {
  • // Chaine(variable) avec laquel on va faire les teste
  • char *MaChaine = NULL; // L'initialise à NULL
  • // Efface l'écran
  • system("cls");
  • // Alloue de l'espace
  • MaChaine = new char[100];
  • // Copie une chaine de caractères dans l'espace alloué
  • strcpy(MaChaine, " Salut ca va bien? Moi oui! ");
  • cout << "Pour verifier s'il n'y a pas d'espaces je vais utilise -> pour le debut de la ligne";
  • cout << " et <- pour la fin de la ligne." << endl << endl;
  • cout << "Voici le chaine avant modification: " << endl;
  • // Affiche la chaine avant modifications
  • cout << "->" << MaChaine << "<-" << endl << endl;
  • cout << "Resultat avec la fonction RTrim(enlever les espaces a la droite)" << endl;
  • // Modifie la chaine(enlève les espaces à droite)
  • RTrim(MaChaine);
  • // Affiche la chaine
  • cout << "->" << MaChaine << "<-" << endl << endl;
  • cout << "Resultat avec la fonction LTrim(elever les espaces a gauche)" << endl;
  • // Modifie la chaine(enlève les espaces à gauche)
  • LTrim(MaChaine);
  • // Affiche la chaine
  • cout << "->" << MaChaine << "<-" << endl << endl;
  • cout << "J'ai rajouter des espaces a gauche et a droite et voila le resultat de la fonction Trim:" << endl;
  • // Réalloue de l'espace
  • MaChaine = new char[100];
  • // Copie une chaine de caractères dans l'espace alloué
  • strcpy(MaChaine, " Salut ca va bien? Moi oui! ");
  • // Enlève les espaces à gauche et à droite dans la chaine
  • Trim(MaChaine);
  • // Affiche la chaine
  • cout << "->" << MaChaine << "<-" << endl;
  • // Fait une pause
  • system("pause");
  • // Libère la mémoire alloué
  • delete [] MaChaine;
  • // Et c'est terminer!
  • return 0;
  • }
  • /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  • // Enlever les espaces à droite et à gauche dans une chaine
  • void Trim(char *String)
  • {
  • // Enlève les espaces à gauche
  • LTrim(String);
  • // Enlève les espces à droite
  • RTrim(String);
  • }
  • /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  • // Enlever les espaces à gauche dans une chaine
  • void LTrim(char *String)
  • {
  • // Pour effectuer les boucles
  • unsigned int i = 0;
  • unsigned int j = 0;
  • // Connaître la longeur de la chaine
  • unsigned int stringlen = (strlen(String) - 1);
  • // S'il y à des caractères(Si la chaine n'est pas vide)
  • if (stringlen > 0)
  • {
  • // Recherche la position du premier caractère qui n'est pas un espace dans la chaine
  • // Passe tous les caractères un à un à partir du début
  • while (String[i] == ' ')
  • i++;
  • // S'il y à bien des espaces à la gauche(début de la chaine)
  • if (i > 0)
  • {
  • // Décrémente la position de tous les caractères dans la chaine vers la gauche
  • // Ex:
  • // Si la chaine est par exemple: [ Ma chaine ]
  • // Après avoir passer par cette boucle elle va devenir
  • // [Ma chaine ]
  • for (j = 0; j <= (stringlen - i); j++)
  • String[j] = String[(i + j)];
  • String[j] = 0; // Ajoute le caractères(NULL) de fin de chaine
  • }
  • }
  • }
  • /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
  • // Enlever les espaces à la droite dans une chaine
  • void RTrim(char *String)
  • {
  • // Pour effectuer la boucle
  • unsigned int i = 0;
  • // Connaître la longeur de la chaine
  • unsigned int stringlen = (strlen(String) - 1);
  • // S'il y à des caractères(Si la chaine n'est pas vide)
  • if (stringlen > 0)
  • {
  • // Recherche le premier caractère qui n'est pas un espace à partir de la fin
  • i = stringlen;
  • while (String[i] == ' ')
  • i--;
  • // S'il y avait des espaces à la fin de la chaine
  • if (i < stringlen)
  • String[i] = 0; // On les enlève
  • // Ex:
  • // Ca c'est la chaine: [ Ma chaine ]
  • // Après avoir ajouter le 0(NULL) dans la chaine: [ Ma chaine0 ]
  • // Donc tous les espaces après le 0(caractère NULL) seront supprimer!
  • // Le résultat final seras: [ Ma chaine]
  • }
  • }
  • /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Fichiers à inclure
#include <string.h>
#include <stdio.h>

// Prorotypes
void Trim(char *String);   // Enlever les espaces à gauche et à droite dans une chaine
void RTrim(char *String);  // Enlever les espaces à droite dans une chaine
void LTrim(char *String);  // Enlever les espaces à gauche dans une chaine

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Entré du programme
int main()
{

// Chaine(variable) avec laquel on va faire les teste
char *MaChaine = NULL;  // L'initialise à NULL

      // Efface l'écran
      system("cls");

      // Alloue de l'espace
      MaChaine = new char[100];
      // Copie une chaine de caractères dans l'espace alloué
      strcpy(MaChaine, "   Salut ca va bien? Moi oui!   ");

      cout << "Pour verifier s'il n'y a pas d'espaces je vais utilise -> pour le debut de la ligne";
      cout << " et <- pour la fin de la ligne." << endl << endl;

      cout << "Voici le chaine avant modification: " << endl;
      // Affiche la chaine avant modifications
      cout << "->" << MaChaine << "<-" << endl << endl;

      cout << "Resultat avec la fonction RTrim(enlever les espaces a la droite)" << endl;

      // Modifie la chaine(enlève les espaces à droite)
      RTrim(MaChaine);
      // Affiche la chaine
      cout << "->" << MaChaine << "<-" << endl << endl;

      cout << "Resultat avec la fonction LTrim(elever les espaces a gauche)" << endl;

      // Modifie la chaine(enlève les espaces à gauche)
      LTrim(MaChaine);
      // Affiche la chaine
      cout << "->" << MaChaine << "<-" << endl << endl;

      cout << "J'ai rajouter des espaces a gauche et a droite et voila le resultat de la fonction Trim:" << endl;

      // Réalloue de l'espace
      MaChaine = new char[100];
      // Copie une chaine de caractères dans l'espace alloué
      strcpy(MaChaine, "   Salut ca va bien? Moi oui!   ");

      // Enlève les espaces à gauche et à droite dans la chaine
      Trim(MaChaine);
      // Affiche la chaine
      cout << "->" << MaChaine << "<-" << endl;

      // Fait une pause
      system("pause");

      // Libère la mémoire alloué
      delete [] MaChaine;
      // Et c'est terminer!
      return 0;

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Enlever les espaces à droite et à gauche dans une chaine
void Trim(char *String)
{

      // Enlève les espaces à gauche
      LTrim(String);
      // Enlève les espces à droite
      RTrim(String);

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Enlever les espaces à gauche dans une chaine
void LTrim(char *String)
{

// Pour effectuer les boucles
unsigned int i = 0;
unsigned int j = 0;
// Connaître la longeur de la chaine
unsigned int stringlen = (strlen(String) - 1);

      // S'il y à des caractères(Si la chaine n'est pas vide)
      if (stringlen > 0)
      {

            // Recherche la position du premier caractère qui n'est pas un espace dans la chaine
            // Passe tous les caractères un à un à partir du début
            while (String[i] == ' ')
                  i++;

            // S'il y à bien des espaces à la gauche(début de la chaine)
            if (i > 0)
            {
                  // Décrémente la position de tous les caractères dans la chaine vers la gauche
                  // Ex:
                  // Si la chaine est par exemple:  [  Ma chaine  ]
                  // Après avoir passer par cette boucle elle va devenir
                  // [Ma chaine  ]

                  for (j = 0; j <= (stringlen - i); j++)
                        String[j] = String[(i + j)];

                  String[j] = 0;  // Ajoute le caractères(NULL) de fin de chaine
            }

      }

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
// Enlever les espaces à la droite dans une chaine
void RTrim(char *String)
{

// Pour effectuer la boucle
unsigned int i = 0;
// Connaître la longeur de la chaine
unsigned int stringlen = (strlen(String) - 1);

      // S'il y à des caractères(Si la chaine n'est pas vide)
      if (stringlen > 0)
      {

            // Recherche le premier caractère qui n'est pas un espace à partir de la fin
            i = stringlen;
            while (String[i] == ' ')
                  i--;

            // S'il y avait des espaces à la fin de la chaine
            if (i < stringlen)
                  String[i] = 0;  // On les enlève

            // Ex:
            // Ca c'est la chaine:  [  Ma chaine    ]
            // Après avoir ajouter le 0(NULL) dans la chaine: [  Ma chaine0   ]
            // Donc tous les espaces après le 0(caractère NULL) seront supprimer!
            // Le résultat final seras: [  Ma chaine]

      }

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */


  

 Conclusion

Créé et tester sous Dev-C++ 4. Dans le fichier zip il y à le même code et l'exécutable(console).

En cas de problème(s) avec ce code ou autre(s), laissez moi un message! :)

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Trim, LTrim, RTrim
    • Main.cppTélécharger ce fichier [Réservé aux membres club]Voir ce fichier5 232 octets
    • main.oTélécharger ce fichier [Réservé aux membres club]3 411 octets
    • rsrc.oTélécharger ce fichier [Réservé aux membres club]1 026 octets
    • Rsrc.rcTélécharger ce fichier [Réservé aux membres club]Voir ce fichier78 octets
    • Trim.devTélécharger ce fichier [Réservé aux membres club]348 octets
    • Trim.exeTélécharger ce fichier [Réservé aux membres club]76 288 octets

Télécharger le zip


 Historique

18 mai 2007 02:22:34 :
ajout des mots clés( Vous aussi, mettez vos sources à jour !!! Ajoutez les mots clés !!! )

 Sources du même auteur

TRONQUER UN FICHIER(C - WINDOWS)
COMMENT CALCULER LE TEMP D'EXÉCUTION DE CERTAINES FONCTIONS ...
Source avec Zip VSTACK ( EFFET DE PILE ) / TEMPLATE
Source avec Zip NENGINE ( MOTEUR DE RECHERCHE POUR FICHIER ) (UPDATE)
Source avec Zip NLIST ( TEMPLATE )

 Sources de la même categorie

Source avec Zip [C] WD_STRING V2.2 par cyberripper
Source avec Zip LES STRING EN C, AFFECTATION, CONCATÉNATION, SPLIT, ... par appranting
Source avec Zip [C] WD_STRING V1.9 par cyberripper
Source avec Zip LIBRAIRIE LANGUAGES par astro53
FONCTION : CHAR * AJUSTERTAILLECHAINE() par Rockanos

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture [C/WIN32] GÉNÉRATEUR DE CODE POUR UNE INITIALISATION SPÉCIAL... par deck_bsd
SSCANF POUR SUPPRIMER DES ESPACES (COMME TRIM()) par darkpoulpo
Source avec Zip NSTRING (UPDATE) VERSION 1.5 par NitRic
Source avec Zip UPPOINTCHAR ( CHAINE DE CARACTÈRE ) par NitRic
INVERSESTRING ( CHAINE DE CARACTÈRE ) par NitRic

Commentaires et avis

Commentaire de scelw le 11/12/2004 10:51:50

moi kan je ve afficher qqchose je mets juste :
cout << "texte_à_afficher"

à quoi servent les "<< endl" ????

Commentaire de banane_rose le 01/08/2005 20:47:19

endl = retour à la ligne

Commentaire de scelw le 01/08/2005 21:41:59

après information, endl = un flush (la mémoire se vide) + retour à la ligne.

Commentaire de fobiga le 08/06/2007 15:35:08

Vous avez déjà testé ce code. Pour moi le RTrim ne marche pas.
RTrim( " ABC " ) donne " AB"
De plus, la première version affichée dans l'article n'est pas la même que celle du zip.
Heureusement, d'ailleurs car elle avait une deuxième erreur.
RTrim( " " ) laissait la chaîne inchangée.
Quand on livre du code, le minimum est de le tester.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pb Chaîne de caractères [ par mmuller57 ] Bonjour,J'ai créé un petit programme qui convertit les caractères d'une chaîne de caractères par leurs codes ASCII :#include &lt;iostream&gt;#include Affichage d'une chaîne de caractères [ par kalf2000 ] bonjour,j'ai un petit souci, je réussit à récupérer à partir d'un fichier texte une chaîne de caractère et à la mettre dans un tableau de caractère (c Conversion d'un DWORD en chaîne de caractères [ par annplop ] Bonjour,je code en c++ (avec visual c++ 6), et j'ai besoin de convertir une variable de type DWORD en chaîne de caractères.Est-ce possible et si oui c découper une chaîne da caractères à partir d'un caratère point"." [ par oudkaramla ] salut tout le monde,j'ai un problème:si j'ai une chaîne de caractère(nom du fichier par exemple) dont je ne sais pas la longeur, comment je fais pour lire des caractères dans une chaîne [ par phenX ] voila mon probl&#232;me: j'ai une cha&#238;ne de caract&#232;re (qu'on nommera ChCar) saisi par l'utilisateur, je voudrais pouvoir connaitre les quatr concatenation d'une chaîne de caractères [ par davdav73 ] Alors je c=programme sous builder 6 C++ et je voudrais savoir comment ajouter des chiffres entiers les uns apr&#232;s les autres. J'ai un pav&#233; nu chaîne de caractères [ par ProgVal ] Bojour,Comment faît-on pour "découper" une chaîne de cerartères? Par exemple 1 caractère sur 2.Merci d'avanceShowMessage ("signé ProgVal") comment retrouver l'adresse d'une chaîne de caractères dans un tableau de chaînes de caractères [ par telecomakram ] Bonjour,Comment je peux de retrouver l'adresse d'une chaîne de caractères dans un tableau de chaînes de caractères Son prototype sera: <font face conversion d'une chaîne de caractères en hexa [ par AnneG35 ] Bonjour,Je développe un module à intégrer à un serveur, en C++ sous Visual Studio. Les échanges client-serveur sont des requêtes binaires. Pour constr


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,633 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales