Je n'arrive pas à comprendre pourquoi cette chose ne se bouscule pas correctement. J'ai lu d'autres messages sur ce chiffre et autant que je sache, j'utilise exactement le même algorithme ...Chiffre Vigenere Black Hawk Down
Les zones commentées sont des tests que j'ai essayés de m'assurer que tout se passait correctement. Je crois que tout passe correctement, puis échoue dans l'algorithme.
#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
string get_message(void);
string scramble(string key, string message);
int main(int argc, string argv[])
{
if(argc == 2)
{
string key;
string message;
key = argv[1];
//printf("KEY: %s<<",key);
message = get_message();
scramble(key, message);
}
else
{
printf("Please enter 2 arguments.\n");
return 1;
}
}
string get_message(void)
{
string message = "";
do
{
message = GetString();
}
while(strlen(message) < 1);
return message;
}
string scramble(string key,string message)
{
for(int i = 0, len = strlen(message), key_len = strlen(key); i < len; i++)
{
int letter = message[i];
//int Tkey = atoi(key[i % key_len]);
//printf("KEY: %d<<\n",Tkey);
if(islower(letter))
{
//printf("KEY(%d)",(key[i % key_len]-97));
letter = (((letter - 97) + (key[i % key_len])) % 26 + 97);
//printf("(%d)",(letter - 97) + (key[i % key_len])%26);
printf("%c",letter);
}
else if(isupper(letter))
{
//printf("(%d)", key[i]);
//printf("(%c)",letter); WE HAVE CORRECT LETTER
letter = (((letter - 65) + (key[i % key_len])) % 26 + 65);
printf("%c",letter);
}
}
printf("\n");
return 0;
}
Quelle est exactement votre question? Quelle est votre contribution, qu'attendez-vous comme sortie? – nvoigt
sortie pour: Rencontrez-moi au parc à onze heures du matin devrait être: Negh zf av huf pcfx bt gzrwep oz Vous devez rechercher ce qu'est un chiffre de vigenere pour le comprendre il déplace des lettres. GetString() demande l'utilisation d'entrée renvoie une chaîne d'utilisateurs entrée. Oui, je peux utiliser strlen sur une chaîne. – Krill
Le programme s'exécute il ne brouille pas correctement – Krill