Texte : lettres mélangé

Signaler
Messages postés
113
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
24 juin 2009
-
hilairenicolas
Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
-
Bonjour !
Je suis débutant en C, é il faut ke je fasse un programme qui lit un fichier texte, bon ça j'y arrive, mé il fodré ke en même temps, il analyse chake mot pr mélanger les lettres tout en gardan la première et la dernière à la même place genre
Le Bateau fodré ke sa face Le Btaaeu...
Comment faire... ??? :o/
Merci d'avance !!!
++

2 réponses

Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

salut,
alors tu sauvegardes la 1ère et la dernière la lettre dans un tableau ou un pointeur
char *tableau;
tableau[0] ="B"
tableau[6] = "u"
puis tu mélanges les lettres qui sont entre elles
pour la dernière lettre c'est la longueur_du_mot - 1
utilises strlen <string.h> pour connaitre sa longueur
Messages postés
398
Date d'inscription
jeudi 30 octobre 2003
Statut
Membre
Dernière intervention
15 juin 2007
2
tiens c'est cadeau (avec mélange aléatoire)

#include <string.h>
#include <stdlib.h>
#include <time.h>
#include 

void melange(char *);

int main(int argc, char* argv[])
{
char temp[100];
strcpy(temp,"bateau");
cout << temp << " devient : " ;
melange(temp);
cout << temp << "\n";
return 0;
}

void melange(char *chaine)
{
srand( (unsigned)time( NULL ) );

int longueur = strlen(chaine);
char *temp = new char[longueur];
strcpy(temp,chaine+1);
temp[longueur-2]='\0';

int * tab = new int[longueur-2];
int nombreHasard;int i 0, j 0;
bool ok;
for (i=0;i<longueur-2;i++)
{
ok = false;
j=0;
nombreHasard = (int) rand() % (longueur-2);
while (!ok)
{
while (j=i)
{
tab[j] = nombreHasard;
ok = true;
}
else
{
nombreHasard = (int) rand() % (longueur-2);
j=0;
}
}
}
for (i=0;i<longueur-2;i++)
{
chaine[tab[i]+1] = temp[i];
}
delete temp;
delete tab;

}