Array um X verschieben (Ähnlich Caesar)



  • Hallo zusammen,

    Ich möchte eine Caesar Verschlüsselung in C basteln, kann mir vielleicht jemand erklären, wie man ein char Array um x verschieben kann ?

    Ich stelle mir das in etwa so vor, Eingabe als Array: "Hallo Peter"
    Verschieben um x schiebt dann die Buchstaben im Alphabet um x höher.
    A verschieben um 2 --> C

    Es wäre schön, wenn mir dabei jemand weiterhelfen könnte,
    Danke sehr



  • Nun, vereinfachen wir das mal um eine Funktion die ein Zeichen verschiebt.
    Ein Array zu verschieben, ist dann einfach nur diese Funktion für jedes Zeichen aufzurufen.
    Bekommst du es hin so eine Funktion zu schreiben?



  • Müsste man da mit einem Pointer arbeiten ?:

    int i;
    char Array[] = "Mir geht es gut";
    char *pt = &Array[0]
    i = *pt+1



  • @Nathan

    Ich weiß nicht, ob du das gemeint hast ?
    Aber kann mir jemand weiterhelfen, vielleicht geht das ja noch einfacher anstatt mit Pointern, wobei Pointer das einzige ist, was mir zur Funktion eingefallen ist, die Zeichen verschiebt.



  • Du brauchst keine extra Zeiger, wenn du ein (beschreibbares) Array hast, kannst du einfach per Index iterieren,

    char s[]="Hallo";
    int c = 2;
    for(int i=0;i<5;i++)
      s[i] = s[i] + c; /* oder s[i] += c; */
    


  • Super, danke. Ich hatte eigentlich gedacht, dass das nicht funktioniert Array + x, um es zu verschieben, aber Danke.


  • Mod

    Fragensteller01 schrieb:

    Ich hatte eigentlich gedacht, dass das nicht funktioniert Array + x, um es zu verschieben,

    Das steht da ja auch nicht und das würde auch tatsächlich nicht funktionieren.


Log in to reply