• Guten Abend zusammen

    Ich habe ein kleines Problem mit der qsort Funktion
    bin ziemlicher Einsteiger beim Programmieren und gerade mit einer qsort-Funktion beschäftigt die Dateiinhalte sortieren soll nun tritt folgendes Problem auf:


    1) Ich kann über Argumentzeile Zahlen und Buchstaben auf und absteigend sortieren (Code 1)
    wieso funktioniert das nicht mit einem Array (Code 2)

    2) Wie sortier ich überhaupt eine Datei? Speicher ich den Dateiinhalt in ein Array das ich dann sortiere oder geht das auch einfacher?


    bin für jeden Vorschlag dankbar

    mfg Alex

  • Im ersten Fall hast du sortierst du etwas vom Typ char **, im zweiten Fall vom Typ char *.

    Im zweiten Fall speicherst du außerdem ganze Zahlen in ein char-Array. strcmp sieht diese Zahlen dann als Strings an, findet kein abschließendes '\0' => Chaos bzw. Segmentation fault.

  • Danke für die schnelle Antwort

    wie kann ich denn Segmention Fault beim 2. Fall vermeiden?
    bzw

    Code
    array[0] = "a"; würde auch nicht funktionieren oder?


    wie krieg ich das mit EOS gebacken?

    mfg Alex

  • Schreibs einfach um

    Und mit %c bei deinen integralen Werten wirst du nicht viel sehen - siehe Ascii Tabelle ;)

    lg

  • danke vielmals :thumb:

    und wie kann ich das ganze jetzt auf eine Datei gesehen anwenden?
    zu mal ich da ja nicht mit %c und %d ausgebn kann sondern die ganze Datei betrachten muss, gibt es da ne Möglichkeit?

    oder kann ich eben den Dateiinhalt in ein Array speichern dann müsste ich aber irgendwie zwischen den Dateitypen unterscheiden

    Einmal editiert, zuletzt von AlexW (17. April 2009 um 21:25)

  • also was ich bisher habe

  • Hmm. Was willst du genau machen? Du hast eine Datei mit Werten (Strings und inigerale Typen) und willst die einlesen und sortieren?

    EDIT: Bzw. integrale Typen in der Datei ja auch mehr oder weniger Strings sind ;)

  • eine beliebige (binär)Datei sortieren entweder auf- oder absteigend
    wobei ich mir nicht im klaren bin wie man Sonderzeichen (,;?=) sortieren kann (außer vl nach ASCII)

  • Du musst den Wert in der Datei ja irgendwie interpretieren. Also zu sagen was da jetzt für ein Typ steht geht ohne weiteres nicht.
    Array kannst verwenden oder wenns online gehen muss z.B. 2-4 Baum (also wenn du es bearbeiten können musst o.ä.)

  • Du musst den Wert in der Datei ja irgendwie interpretieren. Also zu sagen was da jetzt für ein Typ steht geht ohne weiteres nicht.
    Array kannst verwenden oder wenns online gehen muss z.B. 2-4 Baum (also wenn du es bearbeiten können musst o.ä.)

    wenn ich jetzt ne beliebige Datei hätte (einfaches bsp)

    Zitat

    defacb34tz1

    könnte ich da einfach jedes Zeichen als "string" verwenden und sortieren wies mit argc, argv schon funktioniert hat?

  • Puh. Kann man pauschal imo nicht beantworten - muss allerdings sagen, dass ich die Aufgabenstellung auch nicht genau kenn. Wenn readable chars geschrieben wurden dann nimm meine Version - wenn z.B. 6er Zeichenblöcke sind deine. Hab zu dem oben genannten Forum keinen Zugriff - kanns dir daher auch nicht genau sagen ;)

  • nja danke auf jeden Fall mal
    jetzt hab ich eh das Wochenende Zeit und werd mir das alles mal in Ruhe anschauen mal schauen was dabei rauskommt

  • Zeichen (char) sind nichts Anderes als Integers.
    Du könntest auch schreiben:

    Code
    int integerVariable = 'A';

    Das ist ebenso möglich wie:

    Code
    char zeichenVariable = 255;

    Alles klar?

Jetzt mitmachen!

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