Folgendes Problem:
zu erstellen ist ein Programm, das aus einem eingegebenen Alphabet , welches in der Eingabe-Reihenfolge auch die sortierreihenfolge festlegt, zufällige Zeichenketten erstellen soll, und diese dann wie in einem Lexikon anordnen soll...
Zur verdeutlichung der Testfall (z beinhaltet die random zeichenketten)
char **z;
Alphabet a = {a,b,c,d,e,f}
z[0] = "abbfdddc"
z[1] = "abbcdf"
z[2] = "cfff"
z[3] = "ceff";
und beliebige andere Kombinationen über dem Alphabet.
Dadurch das a der kleinste Buchstabe in diesem Alphabet ist ist die Zeichenkette z[1] an erster Position.
Der Buchstabe 1 von z[0] und z[1] ist zwar gleich, jedoch steht dann das c später vor dem f in unserem Alphabet.
Da unser Alphabet so aussieht wie unser normales ist die sortierung so einfach, wäre jedoch das z zuerst in A so wäre die Sortierung rückwärts.
Nun das eigentliche Problem:
Da mein 2D Array nun unterschiedlich lange char arrays enthält, habe ich ein problem damit die Reihenfolge zu ändern.
dazu der markierte Teil hier im code:
Das Problem ist also wenn ich das array was an Position z[1] ist mit z[0] tauschen will geht das , da die Lönge von z[0] größer ist, jedoch wenn ich z[0] auf z[1] setzen will, will ich ein Array der Größe 8 in ein array der Größe 6 pressen.
Das erzeugt Müll.
Wie kann ich die Elemente einfach nur in der Reihenfolge des Arrays z ändern, ohne das sihre Speicherplätze sich ändern?
Ich hoffe ich konnte es eingermaßen gut formulieren und ich weiß es ist ziemlich komplex... :-/
zu erstellen ist ein Programm, das aus einem eingegebenen Alphabet , welches in der Eingabe-Reihenfolge auch die sortierreihenfolge festlegt, zufällige Zeichenketten erstellen soll, und diese dann wie in einem Lexikon anordnen soll...
Zur verdeutlichung der Testfall (z beinhaltet die random zeichenketten)
char **z;
Alphabet a = {a,b,c,d,e,f}
z[0] = "abbfdddc"
z[1] = "abbcdf"
z[2] = "cfff"
z[3] = "ceff";
und beliebige andere Kombinationen über dem Alphabet.
Dadurch das a der kleinste Buchstabe in diesem Alphabet ist ist die Zeichenkette z[1] an erster Position.
Der Buchstabe 1 von z[0] und z[1] ist zwar gleich, jedoch steht dann das c später vor dem f in unserem Alphabet.
Da unser Alphabet so aussieht wie unser normales ist die sortierung so einfach, wäre jedoch das z zuerst in A so wäre die Sortierung rückwärts.
Nun das eigentliche Problem:
Da mein 2D Array nun unterschiedlich lange char arrays enthält, habe ich ein problem damit die Reihenfolge zu ändern.
dazu der markierte Teil hier im code:
Code:
protected
Das Problem ist also wenn ich das array was an Position z[1] ist mit z[0] tauschen will geht das , da die Lönge von z[0] größer ist, jedoch wenn ich z[0] auf z[1] setzen will, will ich ein Array der Größe 8 in ein array der Größe 6 pressen.
Das erzeugt Müll.
Wie kann ich die Elemente einfach nur in der Reihenfolge des Arrays z ändern, ohne das sihre Speicherplätze sich ändern?
Ich hoffe ich konnte es eingermaßen gut formulieren und ich weiß es ist ziemlich komplex... :-/
Zuletzt bearbeitet: