Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.50 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <cs50.h>
  3. #include <ctype.h>
  4. #include <math.h>
  5. #include <string.h>
  6. #include <stdlib.h>
  7.  
  8. int main(int argc, string argv[])
  9. {
  10.     //handles argv[0] requirements, as per the specifications
  11.     if(argc !=2)
  12.     {
  13.         printf("Error 1: missing, redundant or non-alphabetical command-line argument. Please retry.\n");
  14.         return 1;
  15.     }
  16.     //otherwise go ahead
  17.     string k = argv[1];
  18.     int i;
  19.     int j = 0;
  20.     int sl;
  21.     int p_i;
  22.     int j_mod;
  23.     int k_j;
  24.     int c_i;
  25.     int  rc;
  26.  
  27.     //prompt user for plaintext
  28.     printf("plaintext: ");
  29.     string p = get_string();
  30.    
  31.    
  32.     //ciphertext prompt
  33.     printf("ciphertext: ");
  34.    
  35.     for(i=0, j=0, sl=strlen(p); i<sl; i++,j++)
  36.     {  
  37.         if(isalpha(p[i]))
  38.         {
  39.             p_i = p[i]-65; //convert p[i] to alphabetical index
  40.             j_mod = j % strlen(k);
  41.             k_j = k[j] -65; //convert k[j] to alphabetical index
  42.             c_i = (p_i+k_j)%26; //apply vigenere
  43.             rc = c_i+65; //revert to new ascii index
  44.             printf("%c\n", rc);
  45.  
  46.             printf("i ia %i, p[i] is %i,%c\n", i, p[i], p[i]);
  47.             printf("j is %i, jmod strlen(k) is %i\n", j, j_mod);
  48.             printf("applying vigenere: c_i = (%i+%i)mod26\n", p_i, k_j);
  49.             printf("rc = %i+65-->%i\n", c_i, rc);
  50.  
  51.         }
  52.         else
  53.         {
  54.             j--;
  55.             printf("%c", p[i]);
  56.         }
  57.     }
  58.  
  59.  
  60. printf("\n");
  61. return 0;
  62. }//END OF MAIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement