[ Je décrypte un message en C ]
Résolu/Fermé
A voir également:
- [ Je décrypte un message en C ]
- Message - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Message d'absence thunderbird - Guide
- Epingler un message whatsapp - Accueil - Messagerie instantanée
- Message du pere noel gratuit whatsapp - Accueil - Messagerie instantanée
4 réponses
nico7382
Messages postés
279
Date d'inscription
lundi 6 juin 2005
Statut
Membre
Dernière intervention
22 décembre 2010
50
19 juil. 2005 à 08:19
19 juil. 2005 à 08:19
Salut,
ce que je te conseil, je ne l'ai pas compilé mais je pense qu'il faudrait, faire un teste de plus apres
Bonne continuation
ce que je te conseil, je ne l'ai pas compilé mais je pense qu'il faudrait, faire un teste de plus apres
if ((str[canal] >= 97) && (str[canal] <= 122)) /*du style:*/ { if (str[canal]>109) str[canal]-=12 else str[canal]+=14 }
Bonne continuation
pour le gets c'est simplement dû au fait que le gcc t'indique qu'il peut y avoir plus de caractères saisis que ce que tu as prévu dans ta chaîne.
Il est donc mieux d'utiliser :
fgets(str, nbCarMax, stdin);
voilà de cette façon plus de warning :)
Un peu tard je sais ...
Il est donc mieux d'utiliser :
fgets(str, nbCarMax, stdin);
voilà de cette façon plus de warning :)
Un peu tard je sais ...
XtremDev
Messages postés
3
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
25 juillet 2005
19 juil. 2005 à 10:02
19 juil. 2005 à 10:02
il vaut mieux différencier les majuscules des minuscules et de pas effectué la translation si, la caractère n'est pas un lettre.
pour reboucler sur le début de l'alphabet quand on passe à une lettre supérieur à 'l', on peut utiliser la fonction modulo (%).
ça donne :
pour reboucler sur le début de l'alphabet quand on passe à une lettre supérieur à 'l', on peut utiliser la fonction modulo (%).
ça donne :
if ((str[canal] > 96) && (str[canal] < 123)) { str[canal] = (str[canal] - 97 + 14)%26 + 97; } else if ((str[canal] > 64) && (str[canal] < 91)) { str[canal] = (str[canal] - 65 + 14)%26 + 65; }
Utilisateur anonyme
19 juil. 2005 à 18:21
19 juil. 2005 à 18:21
Salut
Excusez-moi pour le retard, j'essayais vos idées...
Je tiens à remercier nico7382 , XtremDev et tous ceux et toutes celles
qui se sont penchés sur le problème.
Je devais rajouter des conditions pour les exceptions.
Reste maintenant les exceptions pour les majuscules et les caractères
spéciaux, ce sera pour demain.
comme celà, le programme sera complet et fonctionnel...
J'ai fait un décalage de 13, car celui de 12 bugguait c'est
l'alghoritme de Rot13 (ou Caesar?).
Merci beaucoup
/* Programme qui scanne les textes cryptées et qui les transforment en français */
#include <stdio.h>
main()
{
char str[10000];
int canal;
printf(" Insérer votre texte crypté, merci :\n");
gets (str);
canal = 0;
while (str[canal]){
if ((str[canal] >= 97) && (str[canal] <= 122))
if (str[canal]>109)
str[canal]-=13; /* retrait de 13 en ascii */
else
str[canal]+=13 ; /* ajout de 13 en ascii */
canal++;
}
printf("Le texte est décrypté et mis en net :\n");
puts(str);
return 0;
}
----------------------bxflash-----------------------------------------------
Excusez-moi pour le retard, j'essayais vos idées...
Je tiens à remercier nico7382 , XtremDev et tous ceux et toutes celles
qui se sont penchés sur le problème.
Je devais rajouter des conditions pour les exceptions.
Reste maintenant les exceptions pour les majuscules et les caractères
spéciaux, ce sera pour demain.
comme celà, le programme sera complet et fonctionnel...
J'ai fait un décalage de 13, car celui de 12 bugguait c'est
l'alghoritme de Rot13 (ou Caesar?).
Merci beaucoup
/* Programme qui scanne les textes cryptées et qui les transforment en français */
#include <stdio.h>
main()
{
char str[10000];
int canal;
printf(" Insérer votre texte crypté, merci :\n");
gets (str);
canal = 0;
while (str[canal]){
if ((str[canal] >= 97) && (str[canal] <= 122))
if (str[canal]>109)
str[canal]-=13; /* retrait de 13 en ascii */
else
str[canal]+=13 ; /* ajout de 13 en ascii */
canal++;
}
printf("Le texte est décrypté et mis en net :\n");
puts(str);
return 0;
}
----------------------bxflash-----------------------------------------------