2010-09-17 16 views
1

Hey je suis nouveau à la programmation en C++, et je reçois le coup de lui, mais je me suis coincé sur ce un simple problème je suis supposé créer un algorithme de chiffrement de décalage en utilisant les lettres A-Z et de les déplacer 3 places, je reçois tout, mais quand Je fais ma sortie je reçois des lettres supplémentaires qui sont inutiles comme "|[|" je sais que je dois mettre un terminateur et je l'ai fait mais ne semble pas fonctionner. Heres ma brouillon de mon programme.Pourquoi ce programme C++ imprime-t-il des caractères non pertinents?

#include<iostream> 
#include<iomanip> 
#include<cstring> 
#include<cmath> 
using namespace std; 

int main() 
{ 
//char 
char caesar[]="THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG"; 
char cipher[255]; 
char lookup[26]; 
int key=3,i,index; 

for(i=0;i<26;i++) 
{ 
lookup[i]= static_cast<char>(65+i); 
} 
for(i=0;i<43;i++) 
{ 
if (caesar[i]>='A' && caesar[i]<='Z') 
{ 
    index= static_cast<int>(caesar[i])-65; 
    cipher[i]=lookup[(index+key)%26]; 

} 
else 

cipher[i]=caesar[i]; 
} 

//Null Terminator 
cipher[i]!='\0' 
cout<<cipher<<endl; 



return 0; 
} 
+0

Est-ce votre code réel? Il ne compile pas dans sa forme actuelle (bien que ce soit simplement un ';' manquant qui empêche la compilation). La ligne manquant le ';' semble être aussi le problème si c'est votre code, cependant. – eldarerathis

+0

vous n'avez pas besoin d'utiliser 'static_cast' pour convertir' char' en 'int'. –

+0

non c'était quelque chose que je viens d'arriver avec – Eric

Répondre

8

Vous utilisez = en place de = et aussi il y a un manque !;

cipher[i]!='\0' 

devrait être:

cipher[i]='\0'; 
+0

merci je l'ai eu pour travailler, – Eric

+0

@ Eric: Bon à savoir. Vous pouvez marquer la réponse comme acceptée. – codaddict