Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- formale Sprachen (http://www.informatikerboard.de/board/board.php?boardid=12)
----- Decoder in C programmieren (http://www.informatikerboard.de/board/thread.php?threadid=4372)


Geschrieben von Decoder am 25.05.2021 um 14:27:

  Decoder in C programmieren

Meine Frage:
Hallo,
will einen Decoder in C programmieren, wobei jeder Buchstabe des zu entschlüsselnden Textes rollierend um den Wert 15 verschoben ist. Nach z fängt es wieder bei a an.




Meine Ideen:
Hab folgendes bisher gemacht:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
 
#include <stdio.h>

int main()
{

    char Zeichenkette[100], ch;
    int i, key;

    printf("Geben Sie eine Zeichenkette ein, die entschüsselt werden soll: \n\n");
    gets(Zeichenkette);
    printf("Enter key: ");
    scanf("%d", &key);

    for (i = 0; Zeichenkette[i] != '\0'; i++)
    {

        ch = Zeichenkette[i];

        if (ch >= 'a' && ch <= 'z')
        {

            ch = ch - key;
            if (ch < 'a')
            {
                ch = ch + 'z' - 'a' + 1;
            }
            Zeichenkette[i] = ch;
        }
        else if (ch >= 'A' && ch <= 'Z')
        {
            ch = ch - key;
            if (ch < 'A')
            {
                ch = ch + 'Z' - 'A' + 1;
            }
            Zeichenkette[i] = ch;
        }
    }

    printf("Decodierte Nachricht: %s", Zeichenkette);

    return 0;
} 


Irgendwie funktioniert das noch nicht so richtig, deswegen brauche ich mal eure Expertise.



Geschrieben von as_string am 26.05.2021 um 11:42:

 

Hallo!

Kannst Du sagen, was genau "nicht so richtig" funktioniert?

Gruß
Marco


Forensoftware: Burning Board, entwickelt von WoltLab GmbH