Modifier une chaine de caractere ??

Fermé
defcon - 31 oct. 2009 à 16:32
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 - 1 nov. 2009 à 15:27
Bonjour,

Je voudrais savoir comment je pourrai faire pour modofier les lettres de l'alphabet ( en language c ) en un mot "clé" je m'explique :

abcdefghijklmnopqrstuvwxyz
bonjourbonjourbonjourbonjo

Sachant que j'ai mis l'alphabet dans un tableau, est-ce que en choisissant n'importe quel mot à la place de bonjour, je peux de cette manère remplacer les lettres de l'alphabet ??

merci d'avance ^^
A voir également:

7 réponses

godLike Messages postés 259 Date d'inscription mercredi 4 mars 2009 Statut Membre Dernière intervention 26 juillet 2011 26
31 oct. 2009 à 17:52
j'ai rien compri.
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
31 oct. 2009 à 17:55
moi non plus
0
en fait j'ai l'alphabet dans un tableau et je veux coder l'alphabet en utilisant cette méthode :

abcdefghijklmnopqrstuvwxyz
bonjourbonjourbonjourbonjo


ce qui donnerait par exemple : informatique ->ouubjouonuo

c'est plus clair la ??
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
31 oct. 2009 à 17:58
oui :)

alors un algo simple (mais peu efficace, mais c'est pas grave) serait :

on a une chaine, un alphabet, et un alphabet modifié
pour chaque caractère (indice i) de la chaine :
  chercher dans l'alphabet (à l'aide d'une boucle for par exemple) à quoi il correspond. Garder l'indice k de la lettre dans l'alphabet.
  remplacer chaine[i] par alphabetmodifié[k]
fin pour
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660 > Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013
31 oct. 2009 à 18:00
remarque : si tu veux qqchose d'efficace il faudrait jouer avec la valeur ascii des caractères de ta chaînes, mais il faudrait que tu vois ce que c'est
0
oui certe mais je le cherche en c ...
ce qui est moins évident ...
au fait ca marche ton programme ?
une idée pour le programme en c ?
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
31 oct. 2009 à 18:06
essaye de coder cet algorithme toi-même, et on verra après ce qui ne joue pas je ne vais pas te faire tout le travail ;)
0
.
0

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

Posez votre question
mais en fait la vrai difficulté est de saisir le mot clé et de le modifié c-a-d de ne plus avoir bonjour mais "courage" ou "defcon" ce qui change radicalement le programme ... ainsi que la difficulté ...
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
31 oct. 2009 à 18:11
Il faut créer l'alphabet modifié avant alors. Pour cela, tu fais ceci :

on a 2 tableaux : "l'aphabet de base" et "l'alphabet modifié"
une variable chaine "mot", une variable int "taille"

Demander un mot (comme courage ou bonjour) l'utilisateur, le stocker dans mot.
calculer sa taille (avec strlen() je crois)

Pour chaque indice i de 0 à 26
  alphabetmodifié[i] = mot[  QQCHOSE ]
fin pour
  


pour le QQCHOSE, il faut que ce truc passe en boucle sur chaque caractère de mot et revienne à zéro quand i fait la taille du mot.

on utilise pour cela les modulos (qui donnent le reste de la division)

le QQCHOSE est i % taille
0
pffiou ca me fais mal à la tête tout ca ... bon pour l'instant j'en suis là mais c pas fini :

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

int taille,l;
char alpha[]={"abcd...z"},mot[50],alphabetmodifie[];
char mot[]
int main() {

printf("\nDonner le mot clé :\n");
scanf("%s",mot);
l=strlen(mot);
for (i=0;i<=26;i++)
{
for(j=0;j<=l;j++)
{

alphabetmodifie [i]=mot[j];

}
}

system ("PAUSE");
return 0;
}

oui pour le modulo mais je ne sait pas ou le mettre ??
0
oulala dsl ya plein de faute je le remet :
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
1 nov. 2009 à 15:27
En fait, pour avoir moins mal la tête ;), il faut bien décomposer ton programme. D'ailleurs, une grosse partie d'un travail de programmeur est d'abord de concevoir son programme en gros.


1) tu fais un morceau de code qui fonctionne déjà avec ton exemple (bonjourbonjour...)

2) Ensuite tu rajouteras un morceau de code avant ça qui va créer un alphabet modifié comme bonjourbonjour ou un autre, mais ça ce sera une fois que ton exemple avec bonjourbonjour... fonctionne


C'est à dire : au départ ton tableau "alphabetmodifié" est fixé dès le début, et tu programmes de sorte que ce que tu veux faire fonctionne.

Ensuite tu conçois quelquechose qui permettra à l'utilisateur de donner son propre "alphabet modifié" à l'aide d'un mot et le programme se chargera d'en faire un alphabet modifié en le répétant comme il faut.


Ce sont deux choses bien séparées, et le truc du modulo ce sera seulement pour créer l'alphabet modifié.


Et la prochaine étape sera de séparer ça en deux fonctions distinctes, pour que ce soit plus propre. En fait en théorie il faudrait le faire dès le début cette séparation en deux fonctions. Mais je ne connais pas ton niveau, je ne sais pas si tu as bien compris ce que sont les fonctions. Après cela je te montrerai volontier comment séparer ça en deux fonctions et tu verras à quel point ce sera plus clair et agréable à comprendre et à lire ;)
0