Cherche une fonction pour manipuler une chaine de caractere
BertaNd
Messages postés9Date d'inscriptionmardi 19 juillet 2005StatutMembreDernière intervention17 août 2005
-
2 août 2005 à 23:15
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
3 août 2005 à 14:57
salut
je cherche une fonction qui me permettrait de prendre le premier
caractere d'une chaine et de le deplacer a la fin de cette meme chaine,
exemple "cppfrance -> ppfrancec"
j'ai cherché sur msdn, mais bon ! j'ai deja du mal quand c'est en francais !
merci !
A voir également:
Cherche une fonction pour manipuler une chaine de caractere
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 201917 3 août 2005 à 00:04
3 parcours c'est beaucoup, j'avais mis en 2 mais on va réduire en 1 seul.
Pas testé mais devrait aller.
void DeplaceCar(char *psz)
{
char *c, *d, a;
c = psz;
a = *c++; // ON RETIENT LE 1er CHAR
if(!a) return; // CHAINE VIDE, C'EST FINI
if(!*(c+1)) return; // 1 SEUL CHAR, C'EST FINI
d = psz;
while(*d = *c++) d++;
*d = a;
}
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 201917 3 août 2005 à 00:13
OUPS oubli que c est déjà incrémenté:
void DeplaceCar(char *psz)
{
char *c, *d, a;
c = psz;
a = *c++; // ON RETIENT LE 1er CHAR
if(!a) return; // CHAINE VIDE, C'EST FINI
if(!*c) return; // 1 SEUL CHAR, C'EST FINI
d = psz;
while(*d = *c++) d++;
*d = a;
}
ciao...
BruNews, MVP VC++
Vous n’avez pas trouvé la réponse que vous recherchez ?
xterminhate
Messages postés371Date d'inscriptiondimanche 4 janvier 2004StatutMembreDernière intervention23 septembre 2009 3 août 2005 à 08:56
Je peux te proposer une solution en C++ (en 1 seule ligne de code) se
basant sur la fonction standard ROTATE (qui s'applique à n'importe quel
conteneur standard, par exemple std::string).
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 201917 3 août 2005 à 10:12
mets
iLenght = GetWindowText(...); // qui donne direct la strlen, tu gagnes 1 parcours
et
szNewWindName[iLengh-1] = szTitreWnd[0];
en sortie de boucle risque de faire planter si iLenght == 0.
donc:
if(2 > (iLenght = GetWindowText(...)) break; // NE RIEN FAIRE