yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20092 26 févr. 2005 à 21:14
Voilà ce que tu cherches :
/*Enlève les espaces du début*/
char * LTrim(char * Chaine)
{
unsigned int i = 0;
unsigned int j = 0;
unsigned int Longueur = strlen(Chaine);
if (Longueur > 0)
{
while (Chaine[i] == ' ') i++;
if (i > 0)
{
for (j = 0;j <= (Longueur - i);j++) Chaine[j] = Chaine[(i + j)];
Chaine[j] = 0;
}
}
return Chaine;
}/*Enlève les espaces de la fin*/
char * RTrim(char * Chaine)
{
unsigned int i = 0;
unsigned int Longueur = strlen(Chaine);
if (Longueur > 0)
{
i = Longueur;
while (Chaine[i - 1] == ' ') i--; if (i <Longueur) Chaine[i] 0;
}
return Chaine;
}/*Enlève les espaces du début et de la fin*/
char * Trim(char * Chaine)
{
LTrim(Chaine);
RTrim(Chaine);
return Chaine;
}
GIRAFE ENRHUMEE
Messages postés44Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention22 mai 2006 26 févr. 2005 à 21:22
merci, mais j'essai de résoudre le probleme avec la classe string.
j'ai d'ailleurs recopier un exemple d'un livre, et on m'affiche le même message d'erreur.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 févr. 2005 à 11:06
Voila qu'il a enfin sa réponse et, cerise sur le gateau, y a même toutes chances que ce soit plus lent qu'un 'Trim' VB.
Il en faut pour tous les gouts...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 févr. 2005 à 13:46
while(s[0]==' ')s.erase(s.begin());
tu imagines combien de fois ça parcourt la chaine au complet et autant d'alloc desalloc, un vrai poème...
Dans tous les cas, Hylvenir, je ne vois pas tellement d'autre soluce avec des 'string'.
Je te rassure sur ma func ASM, aucun bug depuis des années qu'elle tourne. Niveau perf, sera dur à battre.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 27 févr. 2005 à 15:27
Je sais que ma solution est mauvaise puisqu'a chaque fois il décale
toute la chaine à gauche. Je donnais ca pour dire de remplacer remove
(qui n'existe pas) par erase.