La idea indicada, en pocas lineas.
Los separadores que uso: el espacio en blanco, el tab y el cambio de linea. No uso comas o numeros, pero supongo que puedes extender facilmente para los otros separadores que quieras incorporar.
Código C++:
Ver original// Estado es una enum
Estado estado = FUERA;
string palabra = "";
unsigned int i = 0;
char c;
while(( c = leer_caracter(s,i) ) != 0 ) {
switch( estado ) {
case FUERA:
if( c != ' ' && c != '\t' && c != '\n' ) { // etcetera
estado = DENTRO;
palabra = c;
}
break;
case DENTRO:
if( c == ' ' || c == '\t' || c == '\n' ) { // etcetera
estado = FUERA;
// se acabo la palabra, tiempo de hacer algo con ella
cout << "Palabra = " << palabra << endl;
}
else
palabra += c;
break;
}
++i;
}
// revisar estado al final
if( estado == DENTRO ) {
cout << "Palabra final = " << palabra << endl;
}
Puedes ver este mismo codigo ejecutandose aqui:
http://goo.gl/OT36MN