Sscanf, Zahl zwischen zwei Klammern -> (1)

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag,


    Der string sieht so aus:


    (1) Apfel


    Ich möchte nun die Zahl 1 und das Wort "Apfel" in eigene Variablen Speichern.


    Wenn mein String so aussieht, dann bekomme ich das mit folgendem Code hin:
    sscanf("1 Apfel", "is[32]", amount, itemname);


    Aber folgendes:
    sscanf("(1) Apfel", "is[32]", amount, itemname);


    funktioniert nicht.


    Mfg :)

    Einmal editiert, zuletzt von Stahlos ()

  • new tmp[32];
    sscanf("(1) Apfel", "s[32]s[32]", tmp, itemname);
    strdel(tmp, 0, 1);
    strdel(tmp, strlen(tmp)-1, strlen(tmp));
    amount = strval(tmp);


    Erst als string einlesen, dann erstes und letztes Zeichen entfernen und den Wert übergeben.



    EDIT:

    An Post #4:
    IPrototypeI:
    Tatsächlich, so geht's auch. Allerdings wird das ziemlich unübersichtlich wenn man es bei mehreren Werten so machen will.
    Ich selbst nutze sscanf nicht, daher bevorzuge ich die oben genannte Variante. Für Leute die es einfach nur kopieren wollen geht beides, allerdings wage ich zu behaupten, dass 95% hier mit deiner Variante nicht klarkommen würden, wenn sie etwas ändern wollen. :rolleyes: 

    An Post #4:
    Nichtsdestotrotz gut zu wissen, dass es wenigsten mit sscanf geht. :thumbup: 

    3HZXdYd.png

    2 Mal editiert, zuletzt von Jeffry ()