String bzw. Teilstring



  • Hallo,

    ich habe mal eine Frage an die erfahrenen Programmierer. Und zwar habe ich einen bestimmten string:

    z.B.:

    char zeile[1000];
    

    Innerhalb dieser Zeile befinden sich mehrere verschiedene Steuerelemente, wie z.B. in html (<a>,</a>,...)

    Bsp. einer Zeile:

    <gkihg>hjlökj<a>öjpjpjljljlöjjlj</a>kjhlkh<öljöl>Jöjöä
    

    die chars innerhalb der < und > sind die Steuerelemente.
    Wie kann ich nun den Text der sich z.B. zwischen <a> und </a> befindet herausfiltern? Geht das überhaupt? Ich hoffe mir kann jemand helfen und danke bereits für eure antworten.



  • Dafür nimmst du

    #include <string>

    und

    http://www.cppreference.com/cppstring/index.html

    😉



  • Und wie soll ich mit Hilfe dieser Funktionen den richtigen Teil rausfiltern? Ich bin neu in der Materie und dementsprechend (noch) nicht so gut.
    Ich hatte ja erst überlegt mit pointern zu arbeiten und jeweils einen auf das <a> und einen auf das </a> zu legen, aber irgendwie klappt das alles nicht ?!?



  • du kannst doch mit find einfach nach dem begin und end tags suchen? Dann hast du die positionen und kannst dir den inhalt per substring holen.



  • Hallo

    du must die Methoden string::find und string::substr verwenden.

    bis bald
    akari



  • "find" geht doch aber nur bei Strings, oder?

    z.B. bei string s = "hallo ihr da"

    und nicht bei: char s[1000] = "hallo ihr da"

    oder?



  • Du verwendest doch auch C++, was spricht also dagegen einen std::string zu verwenden?



  • das ist richtig...

    Kann ich einen char in einen string umwandeln?

    geht das so?

    char in[1000] = "blablabla";
    
    string s = in;
    


  • probiers aus 🙂

    aber so gehts 😉
    und dann mit find und substr ausschneiden



  • OK so mache ichs, danke erstmal für eure super schnellen Antworten. Echt toll 😉



  • Achso, eins noch...

    kann ich eigentlich mit substr von ... bis ... herauskopieren oder geht das nur mit einer bestimmten Anzahl von Zeichen zwischen den Steuerelementen? Sprich wenn die Länge des Strings dazwischen bekannt ist. Ich meine ich kanns ja berechnen, ist aber verhältnismäßig umständlich.

    Danke nochmal.



  • ne, geht nur von und anzahl der zeichen. Musst dann eben von der Länge subtrahieren zum ausrecdhnen

    obwohl...
    so könnts klappen:

    string alt = "fkdlajfkldasj";
    string b(alt[4],alt[8]);

    musst ma probieren



  • So stürzt mein Programm komplett ab 😉

    Also doch mit Berechnung... Danke.



  • Hi!

    std::string str( "Hallo Welt" );
    std::cout << str.substr( 6, 4 );
    

    Gibt aus "Welt". Man startet also bei Index 6 und kopiert die nächsten 4 Zeichen.

    grüße


Log in to reply