Advertisement
nRikee

Cifrador v0.5

Nov 3rd, 2012
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <string>
  5. #include <cctype>
  6.  
  7. using namespace std;
  8.  
  9. string toLowerCase(string);
  10.  
  11. int main()
  12. {
  13.     string original;
  14.     string xifrada="                                                                                                                     ";
  15.     int desplazamiento; // Amb desplaçament negatiu no es desdobla.
  16.     char vocales[][2] = {{'a','4'},{'e','3'},{'i','1'},{'o','0'},{'u','2'}};
  17.  
  18.     cout << "Introdueix la cadena a xifrar:" << endl;
  19.     cin >> original;
  20.  
  21.     cout << endl << "Introdueix el calatge: " << endl;
  22.     cin >> desplazamiento;
  23.     cout << endl;
  24.  
  25.     /** Soles per a Linux *//*
  26.     cout << "Cifrando.";
  27.     system("sleep 1");
  28.     cout << ".";
  29.     system("sleep 1");
  30.     cout << "." << endl;
  31.     system("sleep 1");
  32.     */
  33.  
  34.     original=toLowerCase(original);
  35.  
  36.     for (unsigned int a=0;a<original.length();a++)
  37.     {
  38.         if(desplazamiento>0 && a%2==0 && (original[a]=='a' || original[a]=='e' || original[a]=='i' || original[a]=='o' || original[a]=='u'))
  39.         {
  40.             switch(original[a])
  41.             {
  42.                 case 'a': xifrada[a] = vocales[0][1]; break;
  43.                 case 'e': xifrada[a] = vocales[1][1]; break;
  44.                 case 'i': xifrada[a] = vocales[2][1]; break;
  45.                 case 'o': xifrada[a] = vocales[3][1]; break;
  46.                 case 'u': xifrada[a] = vocales[4][1]; break;
  47.                 default: xifrada[a] = '?';
  48.             }
  49.         }
  50.         else
  51.         {
  52.             if((char) (((int)original[a])+desplazamiento) > 'z') xifrada[a] = (char) (( (((int)original[a])+desplazamiento)%(((int)'a')-((int)'z')) )+(int)'a');
  53.             else xifrada[a] = (char) (((int)original[a])+desplazamiento);
  54.         }
  55.     }
  56.  
  57.     cout << "Cadena xifrada: " << xifrada;
  58.  
  59.  
  60.  
  61. }
  62.  
  63. string toLowerCase(string s){
  64.     for (unsigned int a=0;a<s.length();a++)
  65.     {
  66.         if(s[a]>=((int)'A') && s[a]<=((int)'Z'))
  67.         {
  68.             s[a]= (char)(((int)s[a])+32);
  69.         }
  70.     }
  71.  
  72.     return s;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement