2-dimensionale String Arrays

  • Also ich soll bei Sysporg Bsp1B einen authentifiezierungsmechanismus zum kontrollierten ausführen von Programmen machen.
    Client-Server, Message Queue...

    Mein Problem ist nun folgendes:

    Lesen sie nach dem start von cmdprox das authfile zeilenweise in ein 2-dimensionales String array ein. Sie könnne davon ausgehen das maximal 5 Benutzer mit maximal 5 Einträgen vorhanden sind (beschränken sie die maximale Länge der Strings auf einen sinnvollen Wert).

    das authfile ist so aufgebaut: <user>: <command1>...<commandn>

    wie geh ich da vor da es in C ja keine strings gibd?

    sprich wie erstellt man ein 2-dimensionales string array das ca so ausschauen soll:

    authFile[][] = [User1...Usern] [command1...commandn]

    also das mann dann auf die einträge ca so:

    auth[0][0] = "michi"; auth[0][1] = "michicmd1"; auth[0][2] = "michicmd2"
    auth[1][0] = "alex"; auth[1][1] = "alexcmd1"; alexauth[1][2] = "cmd2"

    zugreifen kann!

    ich hoffe irgendwer weiß da bescheid und kann mir einen denkanstoß geben weil abgabe is schon dienstag:(

  • 1.) bitte keine eigenen font deklarative bei posts verwenden, sieht einfach nur grausig aus :)

    2.) also wenn du maximal 5x5 eintraege hast, geht eh ein array[5][5]; und dann die zuweisung wie du sie grad gemacht hast.

    wenn du die groesse dynamisch machen musst, hilft malloc/realloc/calloc, jedoch musst du beachten, dass du da nur 1dimensionale arrays erstellen kannst, und mit etwas arithmetik selber herumrechnen musst.

  • Ein String ist eigentlich ein Array aus mehreren Zeichen hintereinander. In moderneren Sprachen eher unwichtig, aber in C werden Strings standardmäßig als "char* string;" bzw. "char[] string;" benutzt (was eigentlich das gleiche ist). Zusammen mit den String-Funktionen in string.h reicht das grad, um nicht zu verzweifeln.

    Ein zweidimensionales String-Array wäre dann also ein dreidimensionales char-Array mit einer selbstgewählten Konstante MAX_LEN (z.B.) als Länge für die innerste Dimension (sprich die rechtseste Arrayklammer).

    Wenn du sonst nicht weiterweißt, bin ich mir 100pro sicher, dass du mit "String Tutorial C" in Google massenweise hilfreiche Einführungen in die Stringbenutzung mit C kriegst.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • das mid 3 dinemsionalen arrays hört sich gut an :)
    aber kannsd du mir bitte noch erklären wie ich diese dann fülle?

    auth[5][25][12] also
    auth[max5benutzer][max25commands][zu maximal 12 zeichen]?

    problem is hald das array ned immer voll is da ja auch benutzer mid nur einen eintrag vorhandne sein können etc.

    des is ja dann voll speicherverschwendung.
    aber egal wir hams ja außerdem is dienstag deadline :ausheck:

    was ich aber jetz nicht weiß wie weiß ich diesem array dann die einträge zu?

    also sowas hab ich daweil:

    for (token = strtok (line, SEP); token != NULL; token = strtok (NULL, SEP)) {

    /* wie bekomm ich den token jetz auf die richtige stellle in meinem auth-array? */

    }

  • man strncpy

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!