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


