2016-05-14 9 views
1

Ich habe eine Hausaufgabe zu verschlüsseln und entschlüsseln ein Wort mit Caesar und 2-Rail-Chiffren gegeben. Obwohl ich das Konzept verstehe, habe ich ein großes Problem, es in Code zu setzen.2-rail und Caesar Chiffre mit C

Exercise * das Wort "Alexandrossa" Verwendung und verschlüsseln sie 2-rail fence-Verfahren und dann durch 2 Brief an Caesar nach vorne (dh. A wird zu C, oder X wird Z)

Dies ist mein Code:

#include <stdio.h> 
#include <math.h> 
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 

int main() 

{ 
    char a[2][6] = {'A', 'L', 'E', 'X', 'A', 'N', 'D', 'R', 'O', 'S', 'S', 'A'}; 
    char row, col; 

    for (row = 0; row < 2; ++row) 
    { 
     for (col = 0; col < 6; ++col) 
     { 
      printf("%c", a[row][col]); 
     } 

     printf("\n", a[row][col]); 
    } 

    return 0; 
} 

Es zeigt, wie ...

ALEXAN

Drossa

Aber ich kann nicht die Ausgangsanzeige, da dies machen:

AEADOS

LXNRSA

Ergebnis: AEADOSLXNRSA

Wenn jemand hilf mir, dieses Programm zu vervollständigen gib mir wenigstens einen Hinweis darauf, dass ich den Caesar Cipher Part ohne Probleme fertiggestellt habe, ich würde es sehr schätzen. Vielen Dank.

+2

Caesar-Chiffre Hinweis: Zeichen sind nur Zahlen. – ChiefTwoPencils

+0

@ChiefTwoPencils Noch ein Hinweis: Nummern, die für Zeichen stehen, müssen nicht fortlaufend sein. – MikeCAT

Antwort

0

Sie können die Zeichenfolge durchlaufen und die Zeichenfolge nur entsprechend Ihren Anforderungen bearbeiten.

#include <stdio.h> 

int main() { 
    char a[2][6] = {'A', 'L', 'E', 'X', 'A', 'N', 'D', 'R', 'O', 'S', 'S', 'A'}; 
    char row, col; 
    printf("Rail cipher:\n"); 
    for (row = 0; row < 1; ++row) { 
     for (col = 0; col < 12; col += 2) { 
      printf("%c", a[row][col]); 
     } 
     //printf("\n"); 
     for (col = 0; col < 12; col += 2) { 
      printf("%c", a[row][col + 1]); 
     } 
    } 
    printf("\nCaesar cipher:\n"); 
    for (row = 0; row < 12; ++row) { 
     char c = a[0][row]; 
     c = (char) (c + 2); 
     printf("%c", c); 
    } 
    return 0; 
} 

Der obige Code verschlüsselt nur die Zeichenfolge mit Ihren beiden Methoden. Das Entschlüsseln erfolgt ähnlich, indem einfach der Algorithmus umgekehrt wird.

-Test

$ ./a.out 
Rail cipher: 
AEADOSLXNRSA 
Caesar cipher: 
CNGZCPFTQUUC 
Process finished with exit code 0 
+1

Jaees! Vielen Dank! Ich schätze die Hilfe sehr! : D – miiworld2

Verwandte Themen