<mosaic.cnfolio.com>
PROGRAM
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int lengthofcypherkey, lengthoftext, i, j, k, l;
  5. char cypherkey[16], text[256], alteredtext[256];
  6.  
  7. int main(void){
  8.     scanf("%d\n", &lengthofcypherkey);                                // Declares all inputs
  9.     scanf("%[^\n]s", cypherkey);                                      // alows for whole line input including spaces
  10.     scanf("%d\n", &lengthoftext);
  11.     scanf("%[^\n]s", text);
  12.  
  13.     if(lengthofcypherkey<2){                                          // error checking
  14.         printf("length of cypher key is too small");
  15.         return 0;
  16.     }
  17.     else if(lengthofcypherkey>16){
  18.         printf("length of cypher key is too large");
  19.         return 0;
  20.     }
  21.  
  22.     if(lengthoftext<4){
  23.         printf("text is too short\n");
  24.         return 0;
  25.     }
  26.     else if(lengthoftext>256){
  27.         printf("text is too long");
  28.         return 0;
  29.     }
  30.  
  31.     strcpy(alteredtext, text);
  32.     for(i=0; i<lengthofcypherkey; i++)                            // moves throguh the cypher letters checking each one
  33.     {
  34.         if(i==lengthofcypherkey-1)
  35.         {
  36.         l=i-i;
  37.         }
  38.         else
  39.         {
  40.         l=i+1;
  41.         }
  42.         printf("\nStep %d substitute %c with %c\n", i+1, cypherkey[i], cypherkey[l]);         
  43.         for(j=0; j<=lengthoftext; j++)                                                          // moves through the text to check each letter
  44.         {       
  45.             if(text[j]==cypherkey[i])
  46.             {
  47.             alteredtext[j]=cypherkey[l];
  48.             }
  49.         }
  50.         for(k=0; k<lengthoftext; k++)
  51.         {
  52.             printf("%c", alteredtext[k]);                         
  53.         }
  54.     }
  55.   return(0);
  56. }