2016-04-10 10 views
-1

enthält, wie kann ich eine Zeichenfolge geteilt diese Zeichenfolge viele spaces.like für exemple, die (es ist die Linie von Textdatei) 12 145 readySplit-String viele Leerzeichen in C++

i mit alten Version von C++ arbeiten (ich habe nicht C++ 11) und ich weiß nicht, wie ich das tun kann !. Ich habe versucht,

stringstream(line.substr(positionOfElement,string::npos)) 
stringstream(line.substr(positionOfElement,string::npos)) 

es ist Arbeit, aber es ist für mich schlecht, weil ich die Position des Elements in meinem String wissen müssen. Es gibt einen einfachen Weg?

+1

Verwenden 'std :: istringstream' und' Operator >>() ' –

+1

Da die Position jedes Tokens wissen müssen, würde ich Ihnen vorschlagen Schleife über die Zeichen, und speichern und indexieren oder ein Zeiger jedes Mal, wenn Sie ein nonblank finden, dem unmittelbar ein Leerzeichen vorausgeht. – Logicrat

Antwort

0

danke für Ihre Antworten. Ich finde eine Antwort, und in resolve mein Problem wie folgt aus:

string line("124  24 ready"); 
istringstream iss(line); 
vector<string> tokens; 
     copy(istream_iterator<string>(iss), 
      istream_iterator<string>(), 
      back_inserter(tokens)); 
+0

Sie könnten Ihre Lösung ein wenig kürzer machen, indem Sie std :: vectors ctor verwenden, das zwei Iteratoren benötigt: 'vector Token (istream) (iss), istre_iterator ());' – tonisuter