2013-06-11 24 views
6

Diciamo che abbiamo una stringa di stile C in C++ nel formato [4 letters] [number] [number] .... Ad esempio, la stringa può apparire come:C++: estrae i numeri da una stringa

abcd 1234 -6242   1212 

Si deve notare che la stringa dovrebbe avere troppi spazi bianchi (come visto sopra).

Come estrarre questi tre numeri e li memorizzo in un array?

+0

penso che si dovrebbe fare affidamento su utilizzando gli spazi come delimitatori –

+0

@ user2064000 in risposta alla 'obiezioni' sollevate nei commenti alla mia risposta, ti suggerisco di guardare il lato destro di questa schermata e seguire alcuni dei collegamenti "correlati" ... – sehe

risposta

11

Un lavoro per stringstreams, vederla dal vivo: http://ideone.com/e8GjMg

#include <sstream> 
#include <iostream> 

int main() 
{ 
    std::istringstream iss(" abcd 1234 -6242   1212"); 

    std::string s; 
    int a, b, c; 

    iss >> s >> a >> b >> c; 

    std::cout << s << " " << a << " " << b << " " << c << std::endl; 
} 

Stampe

abcd 1234 -6242 1212 
+6

@phresnel Beh, sai ... io sono non nuovo aroun d qui. Alcune persone imparano in entrambi i modi. Posso garantirvi che (a) studenti impazienti *** otterranno le indicazioni importanti da questa risposta (b) le persone che non lo fanno, non lo "otterranno" nemmeno da una risposta _educational_. In breve, Stackoverflow non è per il tutoraggio di libri di testo. Si tratta di fornire risposte volontarie per sbloccare altri programmatori/condividere esperienze. _Fai libero di ignorare sia la domanda che la risposta se non è la tua tazza di tè._ Grazie a – sehe

+1

@ not-sehe: punto preso, speravo che potessi aggiungere almeno alcune spiegazioni, ma il tuo ultimo commento non è sbagliato . (sidenote: ho rimosso i miei commenti) –

Problemi correlati