integer zusammenfügen

  • Hallo,

    hab gerade begonnen C zu lernen und auch schon das erste Problem:Ich habe zwei Integers x und y
    x = visited[number_of_nodes - 2];
    y = visited[number_of_nodes - 1];
    Bei visited[number_of_nodes - 2] kommt zum Beispiel 2 heraus und bei visited[number_of_nodes - 1] der Integer 5.
    Als Ergebnis will ich die Verbindung 2, 5 haben.
    Hab strncat() gefunden. Weiss aber nicht, wie ich das hier anwenden soll.

    Ich hoffe ihr versteht meine Frage. Weiss nicht genau wie ich mein Problem beschreiben. Bin dankbar für jeden Hinweis.:)
    lg
    lilly

  • Das geht mit sprintf. Ein einfaches Beispiel sieht so aus:

    Ein wenig zur Erklärung:

    • MAX_STRING_SIZE gibt an, wie viele Zeichen die Zeichenkette, die erzeugt werden soll, maximal haben darf.
    • In der Zeile mit malloc wird Speicher für die Zeichenkette, in welche die Ausgabe erfolgen soll, reserviert. Und zwar genauso viele Zeichen, wie MAX_STRING_SIZE es angibt.
    • In der Zeile mit snprintf wird in dest eine Ausgabe geschrieben, und zwar maximal MAX_STRING_SIZE Zeichen. Weiters steht ein Formatargument "%i, %i", das angibt, wie die Ausgabe, die in dest geschrieben wird, aussehen soll. Statt %i werden ints eingesetzt, und zwar jene, die durch die weiteren Argumente angegeben werden, hier sind das a und b.
    • Schließlich geben wir in der Zeile mit printf das Ergebnis aus.

    Ich hoffe, das hilft ein wenig. :)

  • Hallo Paulchen,

    danke für deine schnelle Antwort.
    Ich will die Zeichenkette nicht auf dem Bildschirm ausgeben, sondern an die main Fumktion übergeben.
    Mein Vektor visited besteht aus n Zeichen. Ich durchlaufe eine Schleife. zu Beginn der Schleife sind die Werte für visited noch
    visited[0] = 0;
    visited[1] = 1;
    .
    .
    .
    visited[n] = n;
    Beim nächsten Durchlauf erhalte ich für visited[h] = x; und für visited[k] = y;
    Ich will jetzt den Vektor so verändern, dass auf visited[h] vor dem nächsten Schleifendurchlauf visited[h] = x,y steht.
    Das ganze brauche ich unter anderem zur Berechnung eines minimalen Schnittes.
    Nach n maligem Durchlauf der Schleife übergebe ich den Wert visited[h] an die main Funktion.
    Hab auch schon alles bis auf diese "Zusammenlegung".
    Daaanke!

  • Hm, irgendwie check ich nicht, was du machen willst. Du hast n Integer n[t]1[/t], n[t]2[/t], ... n[t]n[/t], und die willst du durch Kommata getrennt in einem String aneinander hängen und als Returnwert zurückliefern?

    Also du hast zum Beispiel die Werte 1, 5, 6, 3, 2 und willst als Ergebnis die Zeichenkette "1, 5, 6, 3, 2" haben?

  • Ich will jetzt den Vektor so verändern, dass auf visited[h] vor dem nächsten Schleifendurchlauf visited[h] = x,y steht.


    Du kannst in einer Zelle des Arrays immer nur einen Wert speichern, nicht zwei.

    Dipper dipper dii dipper dii dipper dii duuu

  • Wie wärs mit einer zweidimensionalen Liste? Ständig zwischen Zahl und String herumkonvertieren wär etwas umständlich.

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Erstmal danke für eure Antworten :) !!
    Hatte bis jetzt keine Zeit mich mit dem Programm weiter zu beschäftigen.
    Das mit der zweidimensionalen Liste klingt ganz gut. Ist damit die doppelt verkettete Liste gemeint.
    Ich weiss aber nicht wie ich das machen soll.
    Hier mein Programm bis jetzt:



    Das programm soll mir den minimalen Schnitt in einem Graphen berechnen.
    Hab dazu einen link mit einer guten Erklärung gefunden:
    http://www.informatik.uni-frankfurt.de/~erps/seminar/theoseminar.pdf
    mein Programm arbeitet (ungefähr) nach dem Algorithmus MINIMUMCUT.
    Ich erhalte den richtigen Wert für das Schnittgewicht. Mein Problem ist der Schnitt.
    Im ersten Durchlauf stimmt er ja noch, weil nur ein Knoten übrig bleibt. Danach nicht mehr.
    Bin dankbar für jede Hilfe.
    Ich weiss, das Programm ist sehr dilletantisch, aber ich hab ja erst begonnen :o.
    Danke!!!!!!!!!!

Jetzt mitmachen!

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