Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Programa criptografa mensagem usando a cifra de César, com o alfabeto padrão.
- ultilizando uma chave, cada letra da mensagem e almentada no alfabeto de acordo com a chave
- criptografando assim a mensagem passada.
- */
- #include <stdio.h>
- #include <cc50.h>
- #include <string.h>
- /*
- função principal pega argumentos de linha de comando.
- (argc) armazena a quantidade de argumentos passados.
- (argv) array onde os argumentos são armazenados (strings).
- */
- int
- main(int argc, char * argv[])
- {
- //testa a quantidade de argumentos de linha de comando.
- if(argc > 2 || argc < 2)
- {
- printf("invalido\n");
- return 1;
- }
- //atoi converte para inteiro, retorna 0 caso a chave for uma letra, e testa se é negativo.
- int chave = atoi(argv[1]);
- if(chave == 0 || chave < 0)
- {
- printf("invalido\n");
- return 1;
- }
- //recebe a mensagem a ser criptografada.
- string mensagem = GetString();
- //strlen retorna a quantidade de caracteres da string passada.
- int caracteres = strlen(mensagem);
- //codifica cada caracter.
- for(int x = 0; x < caracteres; x++)
- {
- char crip;
- int carac = mensagem[x], chave2 = chave;
- do
- {
- //campo faz retornar parao inicio do alfabeto quando chega Z ou z ou 9.
- if(carac == 32)
- {
- crip = 32;
- break;
- }
- if(carac == 57 || crip == 57)
- carac = 47;
- if(carac == 90 || crip == 90)
- carac = 64;
- if(carac == 122 || crip == 122)
- carac = 96;
- //soma com o caracter
- crip = carac += 1;
- chave2--;
- }
- while(chave2 > 0);
- printf("%c",crip);
- }
- printf("\n\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement