|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
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
Sources en rapport avec celle ci
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
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|