1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Hebräische Verschlüsselung

  • DaSeidl
  • 2. Januar 2014 um 15:08
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • DaSeidl
    Punkte
    20
    Beiträge
    2
    • 2. Januar 2014 um 15:08
    • #1

    Hallo,

    Studiere Informatik im ersten Semester und bräuchte bei einer Übungsaufgabe eure Hilfe, da ich bei der Verbesserung leider nicht anwesend sein konnte.

    Also hier die Aufgabe.


    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.


    Hier mein bisheriger Code:

    C
    #include <stdio.h>
    #include <string.h>
    
    
    
    
    int main (void) {
    
    
    
    
    int z,s;
    
    
    
    
    
    
    
    
    printf("Wie viele Zeilen und Spalten? \n");
    scanf("%d %d", &z,&s);
    
    
    
    
    char text [s][z];
    
    
    
    
    
    
    
    
    printf("Bitte geben sie den zu verschlüsselnden Text ein \n");
    fgets(text,128,stdin);
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    return 0;
    
    
    
    
    
    
    
    
    
    
    
    
    }
    Alles anzeigen

    Beim Kompilieren erhalte ich bei der fgets - Funktion jedoch eine Fehlermeldung. Meine Frage ist nun, wie man mit der fgets - Funktion in ein 2D - Array schreibt. Bin noch ziemlicher Anfänger also bitte ich um Nachsicht ;).


    Danke im voraus :)

    MfG DaSeidl

  • Plantschkuh!
    Punkte
    6.173
    Beiträge
    1.181
    • 2. Januar 2014 um 15:25
    • #2

    Es gibt verschiedene Möglichkeiten. Die schönste ist wohl, zuerst mit fgets in ein eigenes s*z großes eindimensionales Array zu lesen und von dort den Text dann stückweise ins zweidimensionale Array zu kopieren.

    (Es gibt diverse Möglichkeiten, diese Kopie zu umgehen. Du bist noch nicht soweit.)

  • nussli
    Gast
    • 7. Januar 2015 um 09:26
    • #3
    C
    #include <stdio.h>
    #include <string.h>
    
    
    int main(void) {
        int posx=0;
        int posy=0;
        int posstr=0;
        int x;
        int y;
        int xg;
        int laenge;
        char eingabe[100];
        char table[100][100];
    
        printf("Zu verschluesselnde Nachricht eingeben: ");
        gets(eingabe);
        fflush(stdin);
        printf("Zeilenanzahl: ");
        scanf("%i", &x);
        fflush(stdin);
        printf("Spaltenanzahl: ");
        scanf("%i", &y);
        fflush(stdin);
        laenge = strlen(eingabe);
    
        for (posx=0;posx<x;posx++) {
            for (posy=0;posy<y;posy++) {
                if (laenge>=posstr) {
                    table[posx][posy] = eingabe[posstr];
                    posstr++;
                } else {
                    table[posx][posy] = '\0';
                }
            }
        }
        posstr=0;
        for (posy=0;posy<y;posy++) {
            for (posx=0;posx<x;posx++) {
                if (table[posx][posy] != '\0')
                    printf("%c", table[posx][posy]);
                }
        }
        getch();
        return 0;
    }
    Alles anzeigen

    Einmal editiert, zuletzt von nussli (7. Januar 2015 um 09:37)

  • Adok
    Punkte
    4.199
    Beiträge
    714
    • 7. Januar 2015 um 13:36
    • #4

    Du brauchst gar kein zweidimensionales Array - es geht einfacher:

    Speichere den String in einem char-Array ab und erstelle ein char-Array gleichen Umfangs.

    Wenn du von 0 bis n-1 iterierst, dann entspricht die Position i in dem Quell-Array der Position (i % zeilen) * spalten + i / zeilen in dem Ziel-Array. Die Variablen zeilen und spalten beziehen sich auf das Ziel-Array.

    Das ist deswegen so, weil ja die Anzahl der Zeilen im Ziel-Array der Anzahl der Spalten im Quell-Array entspricht. i % zeilen ergibt die Spalte im Quell-Array. Diesen Wert multipliziere ich mit spalten, um die Zeile im Ziel-Array zu erhalten. i / zeilen ergibt die Zeile im Quell-Array, das ist die Spalte im Ziel-Array.

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum