Zeichenkettenproblem
-
hi
bitte nicht lachen über diese frage, aber es ist schon verdammt lange her. naja.
ich habe eine zeichenkette vom typ string (#include <string> usign namespace std;)
in der sich 2 leerzeichen befinden. dies wurde aus einer datei ausgelesen.der inhalt des string sieht dann so aus:
www.microsoft.com 80 /windows/default.aspxdas leerzeichen ist ein trennzeichen zwischen den einzelnen teilen. nun muss ich den server ( also www.microsoft.com ), den port ( 80 ) und das verzeichnis ( /windows/default.aspx ) jeweils in 3 verschiedene variablen bekommen.
kann mit einer von euch ne funktion sagen, die nach einen bsetimmten zeichen einer zeichenkette sucht und dann die stelle zurückgibt, an der das zeichen das erste mal auftritt?
schonma danke für eure hilfe
-
string s=...; int i=s.find(' '); //oder war's s.find(" ") ? int i2=s.find(' ',i+1);(der zweite Aufruf sucht von Position "i+1" (direkt hinter dem ersten Leerzeichen) nach dem nächsten Treffer)
-
danke sehr. find hilft mir
-
Schau mal hier den Tokenizer:
http://www.boost.org/libs/tokenizer/index.html
Denn eigentlich willst du ja nicht wissen wo die Leerzeichen sind, sondern du willst die drei Daten in drei Strings packen und sie dann einzeln zu handhaben?
Da nimmt man Tokenizer für.
-
-
Wenn Dein string immer diese Form hat, d.h. stets zwei Leerzeichen, kannst Du es folgendermassen machen:
#include <sstream> // ... std::string verarbeiten = "www.microsoft.com 80 /windows/default.aspx" std::istringstream input( verarbeiten ); std::string server; std::string verzeichnis int port; input >> server >> port >> verzeichnis;