Substring Ausgabe Problem!! hilfe



  • hallo,

    ich habe 2 arrays:

    klammer_auf[2] und klammer_zu[2]

    in klammer auf stehen die 3 orte der "{" drinnen und in klammer zu die orte von "{"

    sie wurden mit str.find ermittelt.

    jz will ich eig nur den inhalt zwischen den klammern ausgeben und zwar so:

    cout <<txt.substr(klammer_auf[1], klammer_zu[1]) << endl;

    dieser text steht in dem textfile drin:

    a {f} lftj {o} {f}

    der 1. inhalt funktioniert nur so:
    cout <<str1.substr(geschwungen_orte_auf[0]+1, geschwungen_orte_zu[0]-3)<<endl;

    ausgabe: f

    ---

    der 2.inhalt funktioniert gar nicht..
    cout<<str1.substr(geschwungen_orte_auf[1]+1, geschwungen_orte_zu[1]-3) << endl;

    ausgabe: {o} {f}

    str1.substr(geschwungen_orte_auf[1], geschwungen_orte_zu[1]) auch wenn ichs so formuliere...

    hab schon viele varianten durch.. ka wieso

    --

    und beim 3. wird nur das zeichen so ausgeben:

    cout << str2.substr(geschwungen_orte_auf[2], geschwungen_orte_zu[2])<<endl; // funktioniert

    Ausgabe: {f} oder

    cout << str2.substr(geschwungen_orte_auf[2]+1, geschwungen_orte_zu[2]-1)<<endl; // funktioniert

    Ausgabe: f}

    verstehe den befehl eig nicht mehr.. ka wieso der so herumspinnt. macht was er will bzw nichts einheitliches...

    vlt kann mir jemand weiterhelfen

    ich dachte nähmlich der funktt. so : substr(pos_anfang,pos_ende) und so lese ichs auch oft..

    ..ka wieso er bei mir immer was anderes macht 😕

    danke im vorraus !!



  • von welchem typ sind denn deine arrays klammer_auf[2] und klammer_zu[2]?
    Ansonsten steht hier eindeutig das der erste Parameter den Startindex im string angibt und der Zweite die länge des zu ermittelnden string. Also nicht Anfangs- und Endpostion sondern Anfangsposition und Länge.



  • danke!


Anmelden zum Antworten