Ver Mensaje Individual
  #10 (permalink)  
Antiguo 17/12/2013, 18:04
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: [C++]Comprobando la existencia de palabras con un if

Hola:
Tal vez puedas combinar el uso de strcmp y de strtok.
La idea es ir sacando cada palabra de la frase e ir comparándola con la palabra a comprobar. Te pongo un ejemplo donde se busca una palabra dentro de una frase, pero la función se puede mejorar para que busque varias palabras.
No sé si estará muy bien del todo. A ver si alguien que sepa más te puede decir si éste es un buen método.
Código C++:
Ver original
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. bool encontrada(char*  frase, char* patron);
  6.  
  7. int main()
  8. {
  9.     char frase[200];
  10.     char patron[10];
  11.     cout<<"Introduce una frase acabada en ENTER"<<endl;
  12.     cin.getline(frase,200);
  13.     cout<<"Introduce palabra a comprobar"<<endl;
  14.     cin>>patron;
  15.     cout<<"La frase: "<<frase;
  16.     if (encontrada (frase,patron))
  17.     {
  18.          cout<<" incluye la palabra "<<"\""<<patron<<"\""<<endl;
  19.     }
  20.     else
  21.     {
  22.         cout<<" NO incluye la palabra "<<"\""<<patron<<"\""<<endl;
  23.     }
  24.     return 0;
  25. }
  26.  
  27. bool encontrada(char*  frase, char* patron)
  28. {
  29.     char* p;
  30.     p=strtok (frase," ");
  31.     if (strcmp (p,patron)==0)
  32.     return true;
  33.     else
  34.     {
  35.         while (p=strtok(0," "))
  36.         {
  37.             if (strcmp (p,patron)==0)
  38.             return true;
  39.         }
  40.     }
  41.     return false;
  42. }