Advertisement
Guest User

cifra de César

a guest
Jul 25th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.71 KB | None | 0 0
  1. /*
  2.     Programa criptografa mensagem usando a cifra de César, com o alfabeto padrão.
  3.     ultilizando uma chave, cada letra da mensagem e almentada no alfabeto de acordo com a chave
  4.     criptografando assim a mensagem passada.
  5. */
  6. #include <stdio.h>
  7. #include <cc50.h>
  8. #include <string.h>
  9.  
  10. /*
  11.     função principal pega argumentos de linha de comando.
  12.     (argc) armazena a quantidade de argumentos passados.
  13.     (argv) array onde os argumentos são armazenados (strings).
  14. */
  15. int  
  16. main(int argc, char * argv[])
  17. {
  18.     //testa a quantidade de argumentos de linha de comando.
  19.     if(argc > 2 || argc < 2)
  20.     {
  21.         printf("invalido\n");
  22.         return 1;
  23.     }
  24.    
  25.     //atoi converte para inteiro, retorna 0 caso a chave for uma letra, e testa se é negativo.
  26.     int chave = atoi(argv[1]);
  27.     if(chave == 0 || chave < 0)
  28.     {
  29.         printf("invalido\n");
  30.         return 1;
  31.     }
  32.  
  33.     //recebe a mensagem a ser criptografada.
  34.     string mensagem = GetString();
  35.    
  36.     //strlen retorna a quantidade de caracteres da string passada.
  37.     int caracteres = strlen(mensagem);
  38.  
  39.     //codifica cada caracter.
  40.     for(int x = 0; x < caracteres; x++)
  41.     {
  42.     char crip;
  43.     int carac = mensagem[x], chave2 = chave;
  44.     do
  45.     {
  46.         //campo faz retornar parao inicio do alfabeto quando chega Z ou z ou 9.
  47.         if(carac == 32)
  48.         {
  49.             crip = 32;
  50.             break;
  51.         }  
  52.         if(carac == 57 || crip == 57)
  53.             carac = 47;
  54.         if(carac == 90 || crip == 90)
  55.             carac = 64;
  56.         if(carac == 122 || crip == 122)
  57.             carac = 96;
  58.         //soma com o caracter          
  59.         crip = carac += 1;
  60.         chave2--;
  61.     }
  62.     while(chave2 > 0);
  63.     printf("%c",crip);
  64.     }
  65.     printf("\n\n");
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement