Remplacer un bout de chaine d'une chaine par un autre bout de chaine

loicus Messages postés 46 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 3 mai 2008 - 2 sept. 2002 à 10:46
BoBlepepeur Messages postés 1 Date d'inscription samedi 11 octobre 2003 Statut Membre Dernière intervention 11 octobre 2003 - 11 oct. 2003 à 17:38
En pratique, j'aimerais bien avoir un truc genre :

chaine4=replace("a remplacer",chaine1,"c'a y, c'ets remplacé");

Mais je ne sais pas quelle fonction utiliser

merci de votre aide!

(oublier pas de me dire le fichier .h de votre fonction)

4 réponses

loicus Messages postés 46 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 3 mai 2008
2 sept. 2002 à 14:38
bon, y a kkun ki me repond?
pcq jsuis dan sla merde la, j'ai vraiment besoin de cette fonction!
0
cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
3 sept. 2002 à 11:45
salut,

je ne sais pas si c'est le résulat escompté, mais toujours est-il que ce code
remplace un mot par un autre.(strcpy) <string.h>; ecrit avec turbo c++ à noter
cependant qu'il ne tourne pas bien avec devc++4 ?

#include <conio.h>
#include <stdio.h>
#include <string.h>

char *remplacer(char *mot_a_remplacer,char *remplacer_par);

int main(void)
{

clrscr();
remplacer("sophie", "jean-pierre");
getch();
return 0;
}

char *remplacer(char *mot_a_remplacer,char *remplacer_par) {

char *resultat;

gotoxy(1,1);
printf ("remplacer %s par %s",mot_a_remplacer, remplacer_par);

resultat = strcpy(mot_a_remplacer,remplacer_par);

gotoxy(1,3);
printf ("le resultat final est le suivant : %s",resultat);

// on peut tout simplement retourner mot_a_remplacer
return resultat;
}
0
loicus Messages postés 46 Date d'inscription mardi 27 août 2002 Statut Membre Dernière intervention 3 mai 2008
3 sept. 2002 à 17:32
Bon, bhen j'ia fait la fonction moi meme! j'envoye tout

char* Char_Fragmentation(char P1[25],int P1S,int Length){
static char P2[25]="";
int i=0;

while(i<=Length){
P2[i] = P1[P1S+i];
i++;
}

return P2;
}

char* Char_StringToVar(char buffer_1[ ],char buffer_0[ ],char Replace[ ]){
int index,Phrase_Length;
int Phrase_EndLength,Phrase_NewLength,Phrase_IndexReplace,Phrase_IndexToReplace;

//String zero
char *Phrase;
Phrase = buffer_0;

//String one
char *ARemplacer;
ARemplacer = buffer_1;

//String two
char buffer_2[ ] = "ca marche pas sans ca";

//String Tree
char buffer_3[ ] = "";
char* PhraseFinal;
PhraseFinal = buffer_3;

Phrase_Length=strlen(Phrase);
index=Phrase_Length;

if(StrStr(Phrase,ARemplacer)!=NULL){
index=Phrase_Length+1-strlen(StrStr(Phrase,ARemplacer));

StrCpyN(PhraseFinal,Phrase,index);
index--;

Phrase_EndLength = Phrase_Length - index - strlen(ARemplacer);
Phrase_IndexReplace = index + strlen(Replace);
Phrase_IndexToReplace = index + strlen(ARemplacer);
Phrase_NewLength = Phrase_IndexReplace + Phrase_EndLength;

char* PhraseEnd = Char_Fragmentation(Phrase,Phrase_IndexToReplace,Phrase_EndLength);

char*buffer=new char;
wsprintf(buffer,"%s%s%s ",PhraseFinal,Replace,PhraseEnd);
PhraseFinal=buffer;

return (PhraseFinal);

}else{

return(NULL);

}
}

char* String_SearchAndReplace(char Phrase[ ],char Aremp[ ],char Rempla[ ]){
bool i =TRUE;
while ( i == TRUE){
if(Char_StringToVar(Aremp,Phrase,Rempla)!=NULL){
Phrase =Char_StringToVar(Aremp,Phrase,Rempla);
}else{
i = FALSE;
return Phrase;
}
}
return Phrase;
}

char* StringSearchARAll(char Phrase[ ]){
Phrase=String_SearchAndReplace(Phrase,"truc","brol");
return Phrase;
}

Et j'utilise la fonction String_SearchARAll car comme ca on peu établi une liste de mot a remplacer par d'autre! C'est pas tres compliquer!
J'utilise la Lib : #include <shlwapi.h>

Et voila, n'heziter pas a me donner vos avis
0
BoBlepepeur Messages postés 1 Date d'inscription samedi 11 octobre 2003 Statut Membre Dernière intervention 11 octobre 2003
11 oct. 2003 à 17:38
Ben ca marche nickel ta fonction ;-) c cool bravo !!
Le gar ki fé des omelettes sans cassé les oeufs
0
Rejoignez-nous