Código:
La funcion cumple el rol de encontrar parrafos pero me cuenta igual "Juan" que "Juan Perez" osea que solo toma la 1era palabra ingresada.. string encontrarParrafos( istream &in ) { string buscarPalabra; string resultado, linea, resultadoMATCH; string::size_type posicion, found; const string LF("\n"); const string CR("\r"); const string PUNTO("."); const string ESPACIO(" "); const string NUL("\0"); string whitespaces ("\r\n\v\f\t"); bool EsParrafo; int numlinea=0, parrafo=0, parrafosMATCH=0; unsigned int lugar; buscarPalabra = palabrasABuscar(); // Otra funcion que pide palabra/as por consola while (getline( in, linea )) { EsParrafo = false; if (linea.empty()) { linea.clear(); } found=linea.find_last_not_of(whitespaces); if (found!=string::npos) linea.erase(found+1); else { linea.clear(); } posicion = linea.find_last_of(PUNTO); //cout << "PUNTO ENCONTRADO en el posicion " << posicion << endl; // Comprobacion if ((posicion != string::npos && linea.substr(posicion+1)==ESPACIO && linea.substr(posicion+2)==NUL) || (posicion != string::npos && linea.substr(posicion+1)==ESPACIO && linea.substr(posicion+2)==CR)) { parrafo++; //cout << "Fin de parrafo encontrado en la linea: " << int(posicion ); // Comprobacion EsParrafo = true; } if (EsParrafo){ // Almacenar los parrafos en nuevas lineas "LF" resultado += linea +LF; lugar = resultado.find(buscarPalabra); if (lugar != string::npos) { parrafosMATCH++; //Almacenar solo los parrafos que cumplan con la busqueda resultadoMATCH += resultado; } // Limpiar resultado para evitar duplicados resultado.clear(); } else { // Concatenar lineas que no tienen fin de parrrafo resultado += linea +ESPACIO; resultado.erase( resultado.length() -1 ); } numlinea++; } cout << " ===================================== " << endl; cout << "+Numero total de lineas analizadas: " << numlinea << endl; cout << "+Numero total de parrafos: " << parrafo << endl; cout << "+Parrafos que contienen la busqueda: " << parrafosMATCH << endl; cout << " ===================================== " << endl; return resultadoMATCH; }
Agradezco cualquier luz