Blender3D
Vitamin C++
Hallo, liebe Forengemeinde.
Ich habe mal versuch mit meinen spärlichen Programmierünsten in C++ ein programm zu schreiben, welches den sogenannten Caesarcode entschlüsselt. Das funktioniert auch ganz gut, nur gibt es einen Segmentation fault, wenn das programm eine eigendlich harmlose Zeile ausführt. Und ich weiss nicht, was ich falsch gemacht habe.
ich hoffe, ihr könnt mir weiterhelfen.
Grüße, Blender3D
Edit: die Zeile, die den Segmentation fault verursacht ist die mit der for-Schleife. Ich benutze GCC
Ich habe mal versuch mit meinen spärlichen Programmierünsten in C++ ein programm zu schreiben, welches den sogenannten Caesarcode entschlüsselt. Das funktioniert auch ganz gut, nur gibt es einen Segmentation fault, wenn das programm eine eigendlich harmlose Zeile ausführt. Und ich weiss nicht, was ich falsch gemacht habe.
Code:
#include <stdio.h>
char alphabet[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
char* umwandeln(char* text, int num)
{
char* out_text;
int m;
for(int n = 0; text[n] != '\0'; n++)
{
switch(text[n])
{
case 'a':
m = 0;
break;
case 'b':
m = 1;
break;
case 'c':
m = 2;
break;
case 'd':
m = 3;
break;
case 'e':
m = 4;
break;
case 'f':
m = 5;
break;
case 'g':
m = 6;
break;
case 'h':
m = 7;
break;
case 'i':
m = 8;
break;
case 'j':
m = 9;
break;
case 'k':
m = 10;
break;
case 'l':
m = 11;
break;
case 'm':
m = 12;
break;
case 'n':
m = 13;
break;
case 'o':
m = 14;
break;
case 'p':
m = 15;
break;
case 'q':
m = 16;
break;
case 'r':
m = 17;
break;
case 's':
m = 18;
break;
case 't':
m = 19;
break;
case 'u':
m = 20;
break;
case 'v':
m = 21;
break;
case 'w':
m = 22;
break;
case 'x':
m = 23;
break;
case 'y':
m = 24;
break;
case 'z':
m = 25;
break;
}
out_text[n] = alphabet[m + num];
}
return out_text;
}
int main(void)
{
char* eingabe;
int diff;
printf("\n");
printf("\tWillkommen beim Caesarcode-Entschluesselungsprogramm!\n");
printf("Geben sie zuerst die Zahl ein, die sie zur Entschluesselung verwenden wollen.\n");
printf(">> ");
scanf("%d", &diff);
printf("\n");
printf("Geben sie nun den Caesarcode, den sie entschlüssenl wollen ein und sie werden die wahre Nachricht erhalten.\n");
printf(">> ");
scanf("%s", &eingabe);
printf("\n\n\n");
printf("Berechne...");
printf("\n\n\n");
// printf("Ergebnis: %s", umwandeln(eingabe, diff));
umwandeln(eingabe, diff);
printf("\n");
return 0;
}
ich hoffe, ihr könnt mir weiterhelfen.
Grüße, Blender3D
Edit: die Zeile, die den Segmentation fault verursacht ist die mit der for-Schleife. Ich benutze GCC
Zuletzt bearbeitet: