Wort links und rechts von einem Zeichen auslesen



  • Ich benutze folgenden Code um eine Datei zeilenweise auszulesen:

    while (!feof(config))
            {
                fgets(buffer,200,config);
            }
    

    Das funktioniert auch wunderbar. Eine Zeile kann dann z.B. folgendes enthalten:

    Text1 = Hallo

    Wie kann ich diese Zeichenkette jetzt auseinandernehmen?

    Danke!

    [ Dieser Beitrag wurde am 14.11.2002 um 21:58 Uhr von NullPointer editiert. ]



  • in c:
    möglich durch zeichenweises auslesen. du fängst vorne an [0] und speicherst alle zeichen in eine andere variable, bis zum ersten Leerzeichen. dann wiederholst du das solange nicht das endline-zeichen kommt, bzw. fgets dürfte ein '\0' ans stringende setzen.



  • Danke für deine Antwort! Es muss aber doch auch möglich sein ein String bzw. eine Zeichenkette die schon eingelesen wurde auseinanderzunehmen. Ich finde die nötigen Funktionen einfach nicht...



  • die einfachste Möglichkeit die ich kenne ist die string(.h)-funktion
    "char *strtok(char *buffer, const char *trennzeichen)"

    lies mal in deiner Libc-Referenz nach wie sie genau funktionert.
    hier das Beispiel aus meiner Referenz:

    main()
    {
      char *buf = "Hello there, stranger";
      char *tok;
      for (tok = strtok(buf, " ,");
           tok;
           tok=strtok(0, " ,"))
        printf("tok = `%s'\n", tok);
    }
    
    tok = `Hello'
    tok = `there'
    tok = `stranger'
    


  • Kannst natürlich auch dir ein bestimmtes Zeichen suchen (wenn du weisst, welches) und von dort aus mit zwei while-Schleifen einmal rückwärts und einmal vorwärts laufen bis zum jeweiligen Zeilenende, also \r



  • strtok ist genau was ich gesucht habe. Vielen Dank!

    mike


Anmelden zum Antworten