1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
10960
10960
EMPFEHLEN
-
22.04.05 18:25 #1
- Registriert seit
- Apr 2005
- Beiträge
- 1
Hallo !
Ich bin neu im Bereich C++, kann aber schon PHP und hab deshalb keine Probleme mit Programmierung an sich.
Benutze als Editor Proton und als Compiler g++ unter cygwin (Linux emulator).
Jetzt habe ich folgendes Problem: ich möchte einen string von der Tastatur einlesen und ihn dann anhand einer bestimmten Zeilenfolge trennen - die verschiedenen Abschnitte sollen danach in einen vector, also etwa so:
string txt;
txt = "Ein Text*-*zweiter Textteil ist länger*-*letzter Teil";
Jetzt soll txt anhand der Zeichenfolge *-* in 3 Teile geteilt werden und dann in vector<string> teile(3) "eingelesen" werden, wobei der erste Teil natürlich den Index 0 haben soll usw. Am besten wird die Anzahl der im vector enthaltenen Elemente auch gleich ausgelesen, also vorkommen des Trennzeichens+1.
In PHP könnte ich das einfach mit "explode" machen, hab in C++ aber leider nichts ähnliches gefunden...
Danke im Voraus für Hilfe !
-
22.04.05 19:34 #2
- Registriert seit
- Apr 2002
- Ort
- Delmenhorst (Niedersachsen)
- Beiträge
- 3.567
moin
Habe mal ein bischen rumprobiert:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
string text="Trenn1*-*uns2*-*Trenn3*-*uns4"; string teile[4]; int anfang[20]; int ende[20]; int l=0; anfang[0]=0; for(int i=0; i<text.length(); i++) { if( text[i] == '*' && text[i+1] == '-' && text[i+2] == '*') { ende[l]=i; anfang[++l]=i+3; teile[l-1] = text.substr(anfang[l-1], ende[l-1] - anfang[l-1]); } } teile[l] = text.substr(anfang[l], ende[l] - anfang[l]);
mfg
umbrasaxum
-
wenn du keine strings sondern char-arrays verwendest,
kannst du dir auch mal die Funktion sscanf() näher ansehen.
Die kann das auch, is aber - wie ich auch festellen musste
- etwas mit vorsicht zu geniessen.
-
oder so :
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
void split(string& text, string& separators, vector<string>& words) { int n = text.length(); int start, stop; start = text.find_first_not_of(separators); while ((start >= 0) && (start < n)) { stop = text.find_first_of(separators, start); if ((stop < 0) || (stop > n)) stop = n; words.push_back(text.substr(start, stop - start)); start = text.find_first_not_of(separators, stop+1); } }
Ähnliche Themen
-
Shell, Zeichenkette anhand 2 delimiter trennen
Von mr_g666 im Forum Linux & UnixAntworten: 5Letzter Beitrag: 18.01.11, 17:58 -
String trennen
Von p4l im Forum PHPAntworten: 5Letzter Beitrag: 10.07.10, 17:06 -
Reguläre Ausdrücke: Zeichenkette anhand von Kommata trennen
Von einfach nur crack im Forum PHPAntworten: 8Letzter Beitrag: 29.05.10, 02:07 -
String trennen
Von lordfritte im Forum PHPAntworten: 19Letzter Beitrag: 30.03.06, 10:44 -
String trennen
Von moistwanted im Forum C/C++Antworten: 3Letzter Beitrag: 28.02.06, 09:33





Zitieren
Login






