void replac(char* str, char* oldstring,char* newstring) { int i=0,tour=0; char *begin=str,*test=oldstring,*copie=newstring,nouveau[100]; while (1) { //if (*begin=='\0' ) //Cas ou l'analyse est terminée et le programme est arrivée à la fin de str. //{ // *(nouveau+i)='\0'; // break; // Analyse terminée. Aller à l'affichage final //} //Cas ou la premiere lettre (ou les suivantes si les premiere sont les memes) d'un mot differe de l'equivalente dans oldstr if (*begin!=*test && *test!='\0') { //Cas du mot commencant par quelques lettres de oldstr mais n'est pas equivalent a oldstr //test sur tour permet de s'assurer que le programme ne se trouve pas sur le premier mot while (*(begin-1)!=' ' && tour!=0) { begin--; test=oldstring; } //copie du mot non remplacable et de l'espace suivant (ou du '\0') dans le nouveau tableau while (*begin!=' ' && *begin!='\0') { *(nouveau+i++)=*(begin++); //if (i>99) return str; } *(nouveau+i++)=*(begin++); // if (i>99) return str; if (*begin=='\0' ) //Cas ou l'analyse est terminée et le programme est arrivée à la fin de str. { *(nouveau+i)='\0'; break; // Analyse terminée. Aller à l'affichage final } } //cas ou la premiere lettre (ou les suivantes si les premieres sont les memes) d'un mot est egale a l'equivalente en oldstr else { //cas ou le mot entier est egal if (*test=='\0') { //copie de newstr dans le nouveau tableau while (*copie!='\0') { *(nouveau+i++)=*(copie++); // if (i>99) return str; } test=oldstring; //reinitialisation de test copie=newstring;//reinitialisation de copie *(nouveau+i++)=*(begin++);//copie de l'espace // if (i>100) return str; continue; //retour au debut de la boucle (mot suivant) } //incrementations en vue de l'analyse de la prochaine lettre begin++; test++; tour++; } } cout<