Melangeur de mot

Résolu
astrowars Messages postés 7 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 2 décembre 2005 - 26 nov. 2005 à 16:09
astrowars Messages postés 7 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 2 décembre 2005 - 26 nov. 2005 à 19:45
salut

j'ai un projet a faire en C++ (en iut info 1année) c'est un melangeur de mot dans un texte .

il doit melanger les lettres à l'interieur de mots (si le mot fait plus
de 3 caracteres il ne doit po melanger la premiere et derniere lettre
de ce mot et il ne doit po toucher au ponctuation du texte )apres avoir
entré le texte .

je m' etais fais un bon petit algo mais lors du passage ne c++ et plus pressisément lorsque je le test et bin il marche pas

ca fait une semaine que je le bidouille que je le réécris différamment mais rien tjrs le meme résultat "ca marche pas "

alors voila mon programme j'implore votre aide avant de petter un boulon (je precise c'est mon premier vrai programme )

(excusez la mise en forme j'ai copier le cpp d'emacs sous linux sous
mon winc pour poster depuis window qui la lu en bloc note dc j'ai remis
en forme vite fait y a p-e une parentèse qui manque ^^)







#include

#include <stdlib.h>

#include <string.h>

#include <time.h>



using namespace std;

string melangeur(string maChaine);

int main(){

char monChar;

string maChaine;

cout<<"entrez votre phrase à mélangée :"<<endl;



while(cin.good()){



cin.get(monChar);

maChaine.push_back(monChar);



}

melangeur( maChaine );

}



string melangeur(string maChaine){



char stop ;

string maChaineMelange;

char recherche =' ';

char recherche2='\0';

int debut,fin,alea,i,j,b;



srand(time(NULL));

debut=0;



while(fin!=stop){



fin=maChaine.find(recherche ||recherche2,debut);

if((fin-debut)<=1){

maChaineMelange[debut]=maChaine[debut];

}

else

{

if((fin-debut)<=3){

for(i=debut;i<fin;i++){

b=i;

alea=(rand()%(fin-debut+1))+debut;

maChaineMelange[i]=maChaine[alea];



for(j=debut;j<b;j++){



if(maChaineMelange[j]==maChaine[i]){

i--;

}

}

}

}

else

{



maChaineMelange[debut]=maChaine[debut];


maChaineMelange[fin-1] =maChaine[fin-1];



for(i=(debut+1);i<(fin-1);i++){

b=i;



alea=rand()%((fin-1)-(debut+1))+(debut+1);



maChaineMelange[i]=maChaine[alea];





for(j=(debut+1);j<b;j++){





if(maChaineMelange[j]==maChaine[i]){



i--;



}

}



}

}



}



maChaineMelange[fin]=maChaine[fin];

debut=fin+1;

if(fin = = '\0'){

fin=stop;

}

maChaineMelange[fin+1]='\0';

cout<<maChaineMelange;



}





si vous voyez ce qui marche po ou se que j'utilise mal n'hesitez po a bien expliquer car je suis vraiment un debutant

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 nov. 2005 à 17:16
Pose ta question sur le forum de cppfrance.com, tu auras plus de chance d'avoir des réponses !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
3
Rejoignez-nous