Advertisement
Guest User

vigenere

a guest
Aug 30th, 2015
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<cs50.h>
  3. #include<string.h>
  4. #include<ctype.h>
  5.  int main (int argc , string argv[])
  6.  {
  7.     string k = argv[1];
  8.     //validating code
  9.     if( argc!=2 )
  10.     {
  11.         printf("1\n");
  12.         return 1;
  13.     }
  14.      for(int z=0;z<strlen(k);z++)
  15.      {
  16.         if(!isalpha(k[z]))
  17.         {
  18.             printf("1\n");
  19.             return 1;
  20.            
  21.         }
  22.      }
  23.      //enciphering...
  24.      string p = GetString();
  25.      for(int i=0,j=0,x=strlen(p);i<x;i++)
  26.      {
  27.        
  28.         if(isalpha(p[i]))
  29.         {  
  30.             int j=i%strlen(k);
  31.            
  32.                 if(isupper(p[i])&&isupper(k[j]))
  33.                 {  
  34.                     p[i]=(((p[i]-'A')+(k[j]-'A'))%26)+'A';
  35.                     j++;
  36.                 }
  37.                 else
  38.                 if(islower(p[i])&&islower(k[j]))
  39.                 {      
  40.                     p[i]=(((p[i]-'a')+(k[j]-'a'))%26)+'a';  
  41.                     j++;
  42.                 }
  43.                 else
  44.                 if(isupper(p[i])&&islower(k[j]))
  45.                 {
  46.                      p[i]=(((p[i]-'A')+(k[j]-'a'))%26)+'A';
  47.                      j++;
  48.                 }
  49.                 else
  50.                 if(islower(p[i])&&isupper(k[j]))
  51.                 {
  52.                     p[i]=(((p[i]-'a')+(k[j]-'A'))%26)+'a';
  53.                     j++;
  54.                 }
  55.         }
  56.      }
  57.         printf("%s\n",p);
  58.        
  59.         return 0;
  60.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement