Accueil > > > 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
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]
}
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
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! :)
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
Sources de la même categorie
Commentaires et avis
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 <iostream>#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ème: j'ai une chaîne de caractè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ès les autres. J'ai un pavé 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
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|