strnset kein ANSI-C Funktion deshalb nicht in string.h

  • Hallo!
    In meinem C-Programm möchte ich die Funktion strnset() verwenden
    um eine spezifizierte Anzahl von Zeichen in ein angegebenes Zeichen zu verändern.

    Diese Funktion ist allerdings keine ANSI-C Funktion und steht in meiner string.h auch nicht drin. Auf vielen Seiten habe ich aber gesehen das einfach der Header string.h verwendet wird.

    Kann mir jemand sagen wo ich den Code für nicht ANSI-C Funktion bekommen kann.

    xxfunkx

  • du könntest einfach memset verwenden, das *ist* naemlich ein standard. \0 am schluss musst vermutlich manuell anhängen.

    [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!

  • Hallo!
    Ich habe in einem char array das ich mir aus einer named piped einlese folgendes drinstehen:

    Was ich darus brauche sind die rot markierten Zeilen.
    Das sind Playlist die ich brauche um sie an andere Stelle anzuzeigen und auswählen zu können.
    Mit der Funktion strstr() kann ich mir die Position anzeigen lassen an der die zu suchende Zeichenkette auftritt.
    Also so zum Beispiel:

    Code
    iln = read(imp3out, output , 8191);
       /* ... */
       char *loc;
       loc = strstr(output, "--> ");
       printf( "\n\t%s wurde an Position %d gefunden.\n\n\n", ".lst", loc-output);
       loc = strstr(output, "--> ");
       printf( "\n\t%s wurde an Position %d gefunden.\n\n\n", ".lst", loc-output);



    Nun bekomme ich aber nur EINMAL raus an welcher Stelle diese Kombination auftritt. Aber ich muß ja mehrmals nach "--> " suchen.
    Und dann habe ich ja erst die Position der Zeichenkombination.
    Ich hab mir nun gedacht. Suche ich anschließend nach ".lst"
    Die Zeichen dazwischen sind dann der Name der Playlist.
    Ich frage mich nur ob das nicht auch einfacher geht.
    Ich bin leider nicht so fit mit Stringmanipulation in C.
    Vielleicht kann mir ja jemand weiterhelfen und noch ein paar Tipps geben.
    Vielen Dank

    xxfunkxx

  • Du kannst ja beim 2. Mal sowas wie

    loc = strstr(output+loc+1, "--> ") + loc+1;

    machen. Dann durchsucht er den String erst nach dem ersten Auftreten von "--> ".

    :thumb: Geschrieben nach der alten, neuen und zukünftigen Rechtschreibung! :thumb:

Jetzt mitmachen!

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