Jvsierra

Cifra de César

Dec 24th, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.20 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main(){
  6.     char str[100], alfabeto[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  7.     int i, j, chave = 0, continuar = 0, opcao = 0;
  8.  
  9.     do{
  10.         printf("1 - Encriptografar uma palavra\n2 - Desencriptografar uma palavra\n");
  11.         scanf("%d", &opcao);
  12.  
  13.         switch(opcao){
  14.             case 1:
  15.                getchar();
  16.  
  17.                printf("Digite a palavra:\n");
  18.                fgets(str, 100, stdin);
  19.  
  20.                printf("Digite o valor da chave:\n");
  21.                scanf("%d", &chave);
  22.  
  23.                for(i = 0; str[i] != '\0'; i++){
  24.                 for(j = 0; j < strlen(alfabeto); j++){
  25.                     if((int)str[i] == (int)alfabeto[j] || (int)str[i] == (int)alfabeto[j] + 32){
  26.                         if(j + chave <= 25){
  27.                             str[i] = alfabeto[j + chave];
  28.                         }else{
  29.                             str[i] = alfabeto[(j + chave) - 26];
  30.                         }
  31.                         break;
  32.                     }
  33.                 }
  34.                }
  35.  
  36.                printf("Palavra encriptograda: %s\n", str);
  37.  
  38.                setbuf(stdin, NULL);
  39.             break;
  40.             case 2:
  41.                 getchar();
  42.  
  43.                 printf("Digite a palavra encriptografada:\n");
  44.                 fgets(str, 100, stdin);
  45.  
  46.                 printf("Digite a chave:\n");
  47.                 scanf("%d", &chave);
  48.  
  49.                 for(i = 0; str[i] != '\0'; i++){
  50.                     for(j = 0; j < strlen(alfabeto); j++){
  51.                         if((int)str[i] == (int)alfabeto[j] || (int)str[i] == (int)alfabeto[j] + 32){
  52.                             if(j - chave >= 0){
  53.                                 str[i] = alfabeto[j - chave];
  54.                             }else{
  55.                                 str[i] = alfabeto[(j - chave) + 26];
  56.                             }
  57.                             break;
  58.                         }
  59.                     }
  60.                 }
  61.  
  62.                 printf("Palavra descriptografada: %s\n", str);
  63.  
  64.                 setbuf(stdin, NULL);
  65.             break;
  66.             default:
  67.                 printf("Opcao invalida.\n");
  68.         }
  69.  
  70.         printf("Deseja usar o programa novamente?\n1 - Sim\nOutro numero - nao\n");
  71.         scanf("%d", &continuar);
  72.  
  73.     }while(continuar == 1);
  74.  
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment