Position im String mittels iterator



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum C++ (auch C++0x, bzw. C++11) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Muss es denn unbedingt ein Iterator sein? Denn std::string bietet dir eine Methode
    std::string::find an mit welcher du das finden von Zeichen recht leicht bewerkstelligen kannst.



  • Firefighter schrieb:

    Muss es denn unbedingt ein Iterator sein? Denn std::string bietet dir eine Methode
    std::string::find an mit welcher du das finden von Zeichen recht leicht bewerkstelligen kannst.

    Siehst du irgendwo, daß er nach der Position eines bestimmten Buchstabens suchen will? Ich nicht.



  • EOP schrieb:

    Firefighter schrieb:

    Muss es denn unbedingt ein Iterator sein? Denn std::string bietet dir eine Methode
    std::string::find an mit welcher du das finden von Zeichen recht leicht bewerkstelligen kannst.

    Siehst du irgendwo, daß er nach der Position eines bestimmten Buchstabens suchen will? Ich nicht.

    Ich weiß nicht, vielleicht hab ich das falsch interpretiert, aber:

    iok schrieb:

    Hallo!
    Ich möchte gern die Position einer Buchstabe im Strung mittels iterator ermitteln.

    Klingt für mich schon danach als wenn er die Position eines Buchstaben im String ermitteln will, oder hast du das anders interpretiert, wenn ja, klär mich auf.



  • iok schrieb:

    Ich möchte gern die Position einer Buchstabe im Strung mittels iterator ermitteln

    1. mittels iterator
    2. "einer Buchstabe" könnte heißen: aller Buchstaben oder eines Buchstabens. Da er aber keinen Buchstaben angibt, den er suchen möchte ist v1 wohl wahrscheinlicher.



  • EOP schrieb:

    iok schrieb:

    Ich möchte gern die Position einer Buchstabe im Strung mittels iterator ermitteln

    1. mittels iterator
    2. "einer Buchstabe" könnte heißen: aller Buchstaben oder eines Buchstabens. Da er aber keinen Buchstaben angibt, den er suchen möchte ist v1 wohl wahrscheinlicher.

    Ohman 🙄



  • Hab leider keinen link zu:
    Wie man richtig Fragen interpretiert

    😃



  • Ja ich hatte ganz vergessen das wir ja hier im Forum generell keine Alternativen für Probleme geben, aber danke du hast mich eines anderen belehrt. Wir hängen uns lieber an den Rechtschreibfehlern anderer auf um unseren Fehler nicht zu gestehen 🙂



  • Firefighter schrieb:

    Ja ich hatte ganz vergessen das wir ja hier im Forum generell keine Alternativen für Probleme geben, aber danke du hast mich eines anderen belehrt. Wir hängen uns lieber an den Rechtschreibfehlern anderer auf um unseren Fehler nicht zu gestehen 🙂

    Alternativen für Probleme?

    Willst ihm also ein anderes Problem als Alternativproblem anbieten? Oder was?

    So langsam verwirrst du mich ein bißchen.



  • Wieso ein Alternativproblem? Er hat danach gefragt wie er ein Buchstaben im String ermitteln kann(mal über die Fehler in der Rechtschreibung hinweg gesehen). Ich hab ihn gefragt ob es wirklich notwendig ist das er dazu einen Iterator dazu verwenden will(kann ja Gründe haben, vielleicht auch nicht und er kannte std::string::find nicht). Im gleichen Zug hab ich ihm somit eine Lösung angeboten die der String ja schon selbst bietet. Jetzt kann er immernoch sagen "Nein Danke, ich brauche den Iterator". Wäre ok, dann kann man meine Lösung verwerfen und sein Urpsrungsproblem wieder aufnehmen, oder aber sein Problem hat sich in Luft aufgelöst mit std::string::find. Wo verstehst du jetzt was nicht?



  • Er hat keinen Buchstaben angegeben, den er suchen möchte!

    Hab ich aber schonmal gesagt.

    Alternativproblem:
    Anrufer: "Mein Haus brennt!"
    Feuerwehrzentrale: "Würde es ihr Problem lösen wenn wir das Haus ihres Nachbarn anzünden?"

    🙂



  • Blödsinniger Vergleich.

    Ich habe seine Aussage "Ich möchte gern die Position einer Buchstabe im Strung mittels iterator ermitteln." so interpretiert das er gerne einen Buchstaben im String finden möchte. Ist vollkommen Richtig das er aufgrund des "einer" mehrere meinen kann, jedoch hat sich der Threadsteller bisher noch nicht zu meiner Antwort geäußert also wer sagt das es falsch ist? 🙂



  • EOP schrieb:

    iok schrieb:

    Ich möchte gern die Position einer Buchstabe im Strung mittels iterator ermitteln

    1. mittels iterator
    2. "einer Buchstabe" könnte heißen: aller Buchstaben oder eines Buchstabens. Da er aber keinen Buchstaben angibt, den er suchen möchte ist v1 wohl wahrscheinlicher.

    Nett spekuliert, aber wirklich unlogisch.
    "einer Buchstaben" ist einfach nur zweifach zu deuten:
    1. wir lesen unsere Texte nicht Korrektur
    2. da einer also ein.
    Ein != alle. Oder gibt es für Dich da keine Unterscheidung?



  • kT



  • Ihr regt euch zu viel auf.

    Ich moechte einen iterator verwenden.
    #include <string>

    using namespace std;
    int main(){
    string a ="Haus";
    string::iterator it;
    for(it=a.begin();it!=a.end();it++){
    int s=(int)strlen((char*)(*it));
    cout<<*it<<","<<s<<endl; }
    }
    ausgabe waere dann:
    H,0
    a,1
    u,2
    s,3

    EOP hat aber schon geschrieben wie man es machen kann. Vielan Dank und ihr muesst ein bisschen ruhiger sein-)



  • Gibts aber eine andere Moeglichkeit das zu machen?
    Ich muss einer funktion nur den iterator übergeben und sie gibt mir aus in welcher position welche buchstabe steht.

    zb.

    #include <iostream>
    #include <string>

    using namespace std;

    void position( string::iterator & piks)
    {
    //int s= etwas, was mir die position des iterators ausgibt
    while piks<=3{
    cout<<*piks<","<<s<<endl;
    piks++;
    }
    }

    int main(){
    string a ="Haus";
    string::iterator piks;
    piks=a.begin();

    position(pisk);
    system("Pause");
    }

    Ausgabe waere dann:
    H,0
    a,1
    u,2
    s,3

    Vielen Dank im Voraus.



  • Code-Tags und gültigen Code, bitte.

    int s = std::distance(a.begin(), piks);
    

    Ohne den String bzw. dessen Anfangsiterator geht's nicht.


Anmelden zum Antworten