Je travaille sur un chiffrement César et j'essaie de sauvegarder les caractères de ma clé de chiffrement dans un tableau basé sur l'ascii de la lettre censé représenter. Donc, si mon chiffrement char key [] = "codezyxwvutsrqpnmlkjihgfba" Le premier caractère du tableau (c) est censé représenter la lettre a, dont ascii num est 97. Donc je veux stocker c dans le tableau à la 97ème place. Chaque fois que j'essaye, le tableau est vide.Comment enregistrer un caractère dans un tableau à la position de son ascii num En c
char key[] = {"codezyxwvutsrqpnmlkjihgfba"};
char alphabet[] = {"abcdefghijklmnopqrstuvwxyz"};
char answerKey[200] = "";
for (int i = 0; key[i] != '\0'; i++) {
answerKey[(int) alphabet[i]] = key[i];
}
for (int i = 0; answerKey[i] != '\0'; i++) {
printf("%c", answerKey[i]);
}
la réponse au titre est 'a [c] = c;' –
En utilisant les codes ASCII des lettres sous forme d'indices , vous affectez uniquement des valeurs aux éléments 97 à 122; tous les autres éléments sont nuls. Par conséquent, votre boucle d'impression ne fonctionne pas: 'answerKey [0]' est zéro. (La condition de boucle 'str [i]! = '\ 0'' n'est utile que pour les chaînes sans caractères null incorporés.) –
Vous devriez réduire vos alphabets, comme' (touche [i] -97)% 27) '. De cette façon, vous pouvez le stocker dans un tableau de 27 alphabets seulement! –