📄 main.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include "utilities.h"
char bruteCaesar(char *code);
char freqAnalysis(char *code);
char * caesar(char key, char *text, int codingMode);
int main(){
char key , *text , *c;
char file[] = {"ver.txt"};
char file2[] = {"aus.txt"};
// Datei 謋fnen
text = getText(file);
printf("Eingabe: %s\n",text);
key = bruteCaesar(text);
c = caesar(key,text,1);
writeText(c,file2);
puts("Text wurde gespeichert");
printf("Ergebnis von freqAnalysis: %c ",freqAnalysis(text));
printf("\n\nDecode freqAnalysis: \n %s", caesar( freqAnalysis(text),text,1));
if(c != NULL)
{
free (c);
c = NULL;
}
return 0;
}
char bruteCaesar(char *code){
char key = 'A', *p, c;
while(key <= 'Z'){
printf("\n\nFortfahren / Starten? --> 1\n\n\n\n");
if(getchar() != '1') break;
while( getchar() != '\n'){ }
key++;
p = caesar(key,code,1);
printf("Ergebnis: %s\n",p);
printf("Key: %c\n",key);
free(p);
}
return key;
}
char freqAnalysis(char *code){
char alphabet[26];
int i=0, max=0,maxind=0;
for ( i = 0; i <26 ; i++) alphabet[i] = 0;
i=0;
while( code[i] != '\0' ){
alphabet[( code[i] - ('A') )]++;
i++;
}
for(i=0 ; i<26 ; i++){
if (alphabet[i] > max){
max = alphabet[i];
maxind = i;
}
}
return (((maxind + 'A'- 'E' + 26)%26)+'A');
}
char * caesar(char key, char *text, int codingMode){
int sizeOfP = strlen(text), i = 0;
char *c , k;
k = key -'A';
c = (char*) malloc(sizeof(char)*sizeOfP);
if(c == NULL){
printf("Zu wenig Speicherplatz!\n");
return(1);
}
switch (codingMode) {
case (0): {
while( i < sizeOfP ){
c[i] = text[i]+k;
if (c[i] > 'Z')
c[i] -= 26;
i++;
}
break; // Ende Case 0 (Decode)
}
case (1) : {
while( i < sizeOfP ){
c[i] = (text[i] - k) ;
if (c[i] < 'A')
c[i] += 26;
i++;
}
break; // Ende Case 1 (Encode)
}
// End Switch
}
c[i] = '\0';
return c;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -