'Hilfe' Anfängerfrage "String" char[]!



  • Hallo,

    ich darf jetzt C lernen und bin total überfordert. Ich Arbeite zwar schon lange mit VB.Net und seit ca. einem Jahr mit Java aber bei C hab ich wegen Kleinigkeiten schon ein totales Problem.

    Meine Aufgabe:

    Ich soll eine Textdatei einlesen und schauen ob in einer Zeile ein bestimmtes Wort enthalten ist. Jetzt wird sicher jeder grinsen und sagen so leicht aber ich hab schon sehr viele Stunden vergeudet damit.

    Also die Datei öffnen und lesen kann ich.

    Aber wie lese ich eine Zeile ein?
    Ein "String" kann ja max 255 Zeichen haben, aber was mach ich wenn die Zeile länger ist?

    Vielleicht kann mir wirklich jemand einen Tipp geben bin schon am verzweifeln.

    DANKE



  • Disaster2k schrieb:

    Ein "String" kann ja max 255 Zeichen haben, ...

    Wer sagt das? Wo steht das geschrieben?

    Wenn du längeren Text in einen "String" speichern willst, dann mach ihn doch so groß wie du ihn brauchst.
    Wenn du viel Platz benötigst, solltest du dir aber Gedanken machen wo du den String ablegst (Stack oder Heap).

    char vieltext[20000];
    

    ist aber kein Problem.



  • Was ist ein "String"?
    Entweder weißt Du, wie lang eine Zeile maximal sein kann, dann definierst Du einen entsprechenden Speicherbereich:

    #define MAX_ZEILEN_LEN 300
    
    char myString[MAX_ZEILEN_LEN];
    

    und liest in diesen Bereich ein.
    Falls Du über die maximale Zeilenlänge keine Information hast, bleibt Dir nur, via

    malloc
    

    Speicher in angemessener Größe zu reservieren, dahin einzulesen, zu prüfen, ob die Zeile vollständig eingelesen werden konnte und falls nicht, mit zum Beispiel

    realloc
    

    mehr Speicher anzufordern und weiterzulesen, bis Du eine Zeile vollständig eingelesen hast.



  • Danke für die schnellen Antworten,

    ich werde das gleich testen und berichte anschließend.


Log in to reply