viernes, 19 de diciembre de 2008

[Código C++] Ver si una palabra está dentro de una frase

Ejemplo en C++ de una funcion que verifica si una palbra esta dentro de una frase o no. La funcion regresa -1 si no encontro la palabra y, en caso de encontrar la palabra, regresa la posicion de la primera aparicion de la palabra en la frase
[sourcecode language='cpp']#include
#include
#include
using namespace std;int esta_en_frase(char palabra[], char frase[])
{
//funcion que regresa la posicion de "palabra" en "frase"
//regresa -1 si no encuentra la palabra en la frase
int i,j,x,y,b1,b2;
//obtenemos las longitudes de las palabras
x=strlen(frase);
y=strlen(palabra);
//Indicamos que aun no hemos encontrado la palabra en la frase
b1=-1;
//ciclo que recorre la frase
for(j=0;j{
//indicamos que no hemos encontrado letras diferentes
b2=0;
//ciclo que recorre la palabra
for(i=0;iif(palabra[i]!=frase[j+i])//buscamos si algun caracter no coincide con la palabra
{
//si una letra no cincide, pues le paramos
b2++;//hay al menos una letra diferente
break;
}
if(b2==0)//si no encontramos letras distintas en la frase, es que acabamos de encontrar la palabra en la frase!
{
b1=j;//posicion donde encontramos la palabra
return b1;//regresamos valor y termina la funcion
}
}
return b1;//si llegamos aqui es que no encontramos la palabra
}

int main()
{
int z;
char frase[200], palabra[25];
cout<<"Ingrese una linea de texto"<cin.getline(frase, 200);
cout<<"\nAhora ingrese la palabra de cual desea saber su ubicacion"<cin.getline(palabra, 25);
z=esta_en_frase(palabra,frase);
if(z>=0)
cout<<"La palabra ( "<else
cout<<"La palabra no se encuentra en la frase"<getch();
}[/sourcecode]

No hay comentarios:

Publicar un comentario