Alors j'écris un programme de chiffrement dans le cadre du cours Harvard CS50 et j'ai ceci code pour vérifier si un caractère + la clé de chiffrement le mettra hors de la plage alphabétique ASCII et pour le boucler si c'est le cas (ainsi que la préservation de la casse). Les types de réseau étant pédalé à travers sont « char » (en texte clair) et « int » (en cipherArray)Obtenir des erreurs de "variable inutilisée" et "identificateur non déclaré" en fonction simple J'essaie d'écrire en C et je ne peux pas comprendre pourquoi
if (((plainText[i] < 91) && ((plainText[i] + cipherArray[j]) > 90)) || ((plainText[i] > 97) && ((plainText[i] + cipherArray[j]) > 122)))
{
printf("%c", ((plainText[i] + cipherArray[j]) - 26));
}
else
{
printf("%c", (plainText[i] + cipherArray[j]));
}
Cependant, le code ci-dessus est un peu difficile à manier et je suis en train de ranger vers le haut en le remplaçant par un fonction que je l'ai écrit comme ceci:
char codeLetters(char a, int b)
{
if (((a < 91) && (a + b) > 90) || ((a > 97) && (a + b) > 122))
{
char c = (a + b) - 26;
}
else
{
char c = a + b;
}
return c;
}
L'idée étant alors je pourrais appeler cette fonction avec:
char code = codeLetters(plainText[i], cipherArray[j]);
printf("%c", code);
Cependant quand je tente de compiler je reçois les erreurs suivantes:
vgen1.c: 114: 14: erreur: variable inutilisée 'c' [-Werror, -Wunused-variable] char c = (a + b) - 26; ^ vgen1.c: 118: 14: erreur: variable inutilisée 'c' [-Werror, -Wunused-variable] char c = a + b; Erreur: utilisation de l'identificateur non déclaré 'c' return c;
Quelqu'un pourrait-il me dire où je me trompe? Pour mémoire, j'ai une autre fonction dans ce code qui fonctionne très bien
Pourquoi voudriez-vous écrire 97 au lieu de ' 'a'' –
Vous voudrez peut-être lire sur le ['isalpha'] (https://linux.die.net/man/3/isalpha),' isupper', 'islower', [' toupper'] (https://linux.die.net/man/3/toupper), et les fonctions 'tolower' dans la bibliothèque standard (' ctype.h'). En règle générale, vous ne voulez pas regarder les encodages de caractères bruts, car ils peuvent changer en fonction du système et des paramètres régionaux. –