October 10, 200421 yr Voila je dois faire un petit prog de cryptographie en C, et j'ai beaucouo de mal avec un des test.... void main (void) { int cpt = 0 ; // Compteur int cle[4]; int n = 0; char temp[4]; char mot [50]; char mot2 [50]; char mot3 [50]; ..... if (mot[n]+cle[n]>'z' || mot[n]+cle[n]>'Z') { mot2[n] = mot[n]+cle[n]- 'a'; } else mot2[n] = mot[n]+cle[n]; n++; .... Voila le but du test c'est que lorsque le prog. additionne la clé ( de 0 à 9 ) et que le caractère dépasse 'z" le prog. le fasse passé à a et continue de l'incrémenté Je ne sais pas si je suis clair ou pas Edited October 10, 200421 yr by Squall NTCK
October 10, 200421 yr Il ne faut pas soustraire 'a', mais 26 pour enlever toutes les lettres de l'alphabet. if (mot[n]+cle[n]>'z' || mot[n]+cle[n]>'Z') Ici, ça ne fonctionne pas. Il faut que tu saches si ta lettre est une lettre minuscule ou capitale. Moi je ferais ça : if (islower(mot[n])) mot2[n] = (mot[n] + cle[n] - 'a')%26 + 'a'; else mot2[n] = (mot[n] + cle[n] - 'A')%26 + 'A';
October 15, 200421 yr Tu es sur d'avoir vu en cours la notion de cast en programmation informatique ? je crois que ca peut t'aider !
October 17, 200421 yr Author Oui..... j'ai vu le casting et j'ai des notions de C, mais elle remonte à 2 ans, donc dans certain cas, j'ai du mal à trouver le moyen de faire ce que je veux
Archived
This topic is now archived and is closed to further replies.