📄 main.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "utilities.h"
char * vigenere(char *key, char *text, int codingMode);
int main(){
char *key = "ABC" , *text , *c;
char file[] = {"test.txt"};
// Datei 謋fnen
text = getText(file);
printf("Eingabe: %s\n",text);
c = vigenere(key,text,0);
printf("Codiert: %s\n",c);
c = vigenere(key,c,1);
printf("Decodiert: %s\n",c);
if(c != NULL)
{
free (c);
c = NULL;
}
return 0;
}
char * vigenere(char *key, char *text, int codingMode){
int sizeOfP = strlen(text), i = 0 , i2 = 0, sizeOfK = strlen(key);
char *c , *k;
k = (char*) malloc(sizeof(char)*sizeOfK);
if(k == NULL){
printf("Zu wenig Speicherplatz!\n");
return(1);
}
strcpy(k, key);
for( i2 = 0; i2<sizeOfK ; i2++)
k[i2] -= 'A';
c = (char*) malloc(sizeof(char)*sizeOfP);
if(c == NULL){
printf("Zu wenig Speicherplatz!\n");
return(1);
}
switch (codingMode) {
case (0): {
i2 = 0;
i = 0;
while( i < sizeOfP ){
c[i] = text[i]+k[i2];
if (c[i] > 'Z')
c[i] -= 26;
i++;
( (i2++) > (sizeOfK-1) ) ? i2 = 0 : i2;
}
break; // Ende Case 0 (Decode)
}
case (1) : {
i2 = 0;
i = 0;
while( i < sizeOfP ){
c[i] = (text[i] - k[i2]) ;
if (c[i] < 'A')
c[i] += 26;
i++;
( (i2++) > (sizeOfK-1) ) ? i2 = 0 : i2 ;
}
break; // Ende Case 1 (Encode)
}
// End Switch
}
c[i] = '\0';
return c;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -