Cherche fonction c++ similaire a str_replace de php [Résolu]

Signaler
Messages postés
9
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
29 mai 2005
-
Messages postés
78
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 avril 2005
-
bonsoir, je ne sait pas si cette fonction existe telle qu'elle ou s'il faut la creer mais je sait que je n'y arrive pas ...
mon but : on a une equation (2x^3+5x^2-4x+5) rentrée par l'utilisateur
str_replace change les "-" par des "+-" dans cette equation donc 2x^3+5x^2+-4x+5
mon raisonement (aussi bon ou mauvais qu'il soit, le voici):
-il n'est pas possible de remplacer une lettre dans une chaine par 2 lettres sans decaler les lettres qui suivent
-les pointeurs vont m'être tres utiles
-bon si j'etait un programme voila ce que je ferai :

<HR>
soit equation une chaine.
je cherche la premiere occurence de "-" dans la ligne.(strstr() ?)
je copie la partie de la ligne qui vas du signe "-" a la fin "quelquepart"
je cherche une nouvelle occurence du signe moins sans prendre en compte "quelquepart[0]je copie la partie .... .... quelquepart2
en boucle jusqua ce que strstr() me renvoi NULL
et la donc je concatene chaque partie en y rajoutant le signe + sauf derniere??
//ARF mais ou est passée la premiere partie qui serai dans l'exemple du haut 2x^3+5x^2
Voila j'espere que la plupart d'entre vous aurant reussis a cerner mon probleme...
merci d'avance

6 réponses

Messages postés
415
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
2 décembre 2005
2
Ta fonction serai "simple", tu fais ta fonction en passant comme
paramètres la chaine dans laquelle tu veux chercher tes '-', et une
chaine vide capable de stocker la première chaîne.

Dans cette fonction, tu fais une boucle qui va lire chaques caratères de la première chaîne.

Tu analyses ce caractère, si ce caractère n'est pas '-', tu met le
caractère dans la deuxième chaîne. Et si ce caractère est le '-' tu met
le caractère '+', puis le caractère '-'.

Et tu continue la boucle jusqu'à la fin de la première chaine.

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
CriPpLe > Il n'est pas notion de MFC dans sa question.

void AjoutePlus(char *pdst, char *psrc)
{ char *c psrc, *d pdst;
while(*c) { if(*c '-') *d++ '+';
*d++ = *c;
c++;
}
*d = 0;
}

ciao...
BruNews, MVP VC++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
Messages postés
78
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 avril 2005

Je sais pas si j'ai bien compris ce que tu voulais, mais essayes ça :

CString strChaine = "2x^3+5x^2-4x+5";
CString inter_strChaine;


for (int i = 0; i<100 && strChaine !=""; i++)
{


if (strChaine.GetAt(0) != '-' && strChaine != "")
{
inter_strChaine += strChaine.GetAt(0);
strChaine.Delete(0);
}
else
{
inter_strChaine += "+-";
strChaine.Delete(0);
}
}
strChaine = inter_strChaine;
Messages postés
9
Date d'inscription
jeudi 13 mai 2004
Statut
Membre
Dernière intervention
29 mai 2005

merci beaucoup pour ces reponses et pour la solution
++
Messages postés
78
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 avril 2005

Il a pas dit qu'il les utilisait pas