Dev - C++ - problemas con esta función en C++

 
Vista:

problemas con esta función en C++

Publicado por airwiches (1 intervención) el 25/04/2007 22:53:28
Hola amigos, os comento, tengo que hacer una función en C++ que reciba un string y una posición y extraiga una palabra y me indique la posición donde acaba esa palabra, el caso es que la he hecho como muestro a continuación, pero no acaba de funcionar del todo bien, si el string que le paso lleva dos caracteres que no sean letras me dice que hay otra palabra mas, con lo que el resultado está mal. ¿que estoy haciendo mal?

string ExtraerPalabra(string linea, unsigned int &pos){
string palabra;
do{
if (linea[pos]!=((linea[pos]>='A' && linea[pos]<='Z') || (linea[pos]>='a' && linea[pos]<='z')))
pos++;

if((linea[pos]>='A' && linea[pos]<='Z') || (linea[pos]>='a' && linea[pos]<='z'))
{
palabra+=linea[pos];
}
pos++;
}while ((linea[pos]>='A' && linea[pos]<='Z') || (linea[pos]>='a' && linea[pos]<='z'));

return palabra;
}
Creo que filtro bien, ya que como palabra se toma todo aquello que esté seguido de letras,
Gracias de antemano
Ejemplo resultado:
paso a la función (hola, esto2que-- es) y pos=0 y me debería devolver hola, pos=4
Esta función está a su vez metida en otra que la va llamando hasta que se le pasa una linea de texto entera, con lo cual el resultado total debería ser 4 palabras

Gracias desde ya.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder