1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

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

  • xxfunkxx
  • 7. Dezember 2004 um 09:51
  • Unerledigt
  • xxfunkxx
    6
    xxfunkxx
    Mitglied
    Punkte
    330
    Beiträge
    55
    • 7. Dezember 2004 um 09:51
    • #1

    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

  • hal
    32
    hal
    Mitglied
    Reaktionen
    52
    Punkte
    11.122
    Beiträge
    2.208
    • 7. Dezember 2004 um 10:12
    • #2

    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!

  • xxfunkxx
    6
    xxfunkxx
    Mitglied
    Punkte
    330
    Beiträge
    55
    • 9. Dezember 2004 um 16:19
    • #3

    memset() hat funktioniert

    danke

  • xxfunkxx
    6
    xxfunkxx
    Mitglied
    Punkte
    330
    Beiträge
    55
    • 14. Dezember 2004 um 19:37
    • #4

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

    Zitat


    output: --> queue
    Entry(s) : 1/[1024]
    Position : 0 <01_Transistor.mp3>
    >>> *311.lst
    Play mode : Repeat
    List view : Tag, then Filename
    Memory : 16.53 Kbytes
    Entry(s) : 19
    Position : 0 <01_Transistor.mp3>
    Status : 0.0% played, 0.0% skipped
    --> saturday.lst
    Play mode : Repeat
    List view : Tag, then Filename
    Memory : 16.31 Kbytes
    Entry(s) : 6
    Position : 0 <happy.mp3>
    Status : 0.0% played, 0.0% skipped
    --> sunday.lst
    Play mode : Repeat
    List view : Tag, then Filename
    Memory : 16.27 Kbytes
    Entry(s) : 5
    Position : 0 <new_begining.mp3>
    Status : 0.0% played, 0.0% skipped

    Alles anzeigen

    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

  • Kongo
    6
    Kongo
    Mitglied
    Punkte
    295
    Beiträge
    44
    • 15. Dezember 2004 um 00:10
    • #5

    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:

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern