Cherche fonction c++ similaire a str_replace de php

Résolu
Toxyz Messages postés 9 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 29 mai 2005 - 16 janv. 2005 à 20:55
CriPpLe Messages postés 78 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 avril 2005 - 16 janv. 2005 à 22:48
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

minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
16 janv. 2005 à 21:34
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
3
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
16 janv. 2005 à 21:47
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++
3
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
16 janv. 2005 à 21:33
0
CriPpLe Messages postés 78 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 avril 2005
16 janv. 2005 à 21:35
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;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Toxyz Messages postés 9 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 29 mai 2005
16 janv. 2005 à 21:47
merci beaucoup pour ces reponses et pour la solution
++
0
CriPpLe Messages postés 78 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 avril 2005
16 janv. 2005 à 22:48
Il a pas dit qu'il les utilisait pas
0
Rejoignez-nous