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.
-
-
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