Hola a todos queridos amigos!, saludos y e especial a David pues sigo de cerca su compromiso y su vocación por ayudar. Así que felicitaciones!<div><br></div><div>Bueno aquí les dejo un código que he desarrollado a partir de la idea del estudiante que sirve para hallar palabra, o palabras contando los espacios antes, durante o después de la misma, con lo cual si lo que buscamos tiene un espacio al final o al principio y la frase en la que se busca no lo tiene, el resultado sera falso.</div>
<div><br></div><div>Realmente verán que es un algoritmo básico y lo he explicado suficientemente para un mejor entendimiento del estudiante....</div><div>-----------------------------------------------------------------------------------</div>
<div><div>//indicar si una subcadena se encuentra en una cadena</div><div>#include <iostream></div><div>#include <cstring></div><div>#include <stdio.h></div><div>using namespace std;</div><div><br></div>
<div>bool buscasubcadena(char a[100],char b[100]);</div><div><br></div><div>int main()</div><div>{</div><div>    char cad[100], subcad[100];</div><div>    cout<<"Ingrese la cadena: ";</div><div>    gets(cad);</div>
<div>    cout<<"Ingrese la subcadena: ";</div><div>    gets(subcad);</div><div><br></div><div>    if(buscasubcadena(cad,subcad))</div><div>    {</div><div>        cout<<"La cadena: "<<endl;</div>
<div>        cout<<cad;</div><div>        cout<<endl;</div><div>        cout<<"contiene a la subcadena: "<<endl;</div><div>        cout<<subcad;</div><div>    }</div><div>    return 0;</div>
<div>}</div><div><br></div><div>//Este algoritmo hallara palabra o palabras separadas por espacio o</div><div>//palabras con espacios al principio o al final.</div><div>bool buscasubcadena(char *a,char *b)</div><div>{</div>
<div>    //Variables para obtener el tamaño de los string</div><div>    int n,m;</div><div>    //Obtenemos la dimensión de los mismos</div><div>    n=strlen(a);</div><div>    m=strlen(b);</div><div>    //Variable boolean para determinar si lo hallamos.</div>
<div>    bool hallado;</div><div>    //Bucle que recorrera la palabra en la que se busca</div><div>    for (int x=0; x < n; x++)</div><div>    {</div><div>        //Bucle que recorre la palabra buscada</div><div>        for (int y= 0; y < m; y++)</div>
<div>        {</div><div>            //Si hallamos una primera coincidencia de letras</div><div>            //de ambas matrices de string en sendos punteros</div><div>            if (a[x]==b[y])</div><div>            {</div>
<div>                //En un nuevo bucle recorremos de allí hasta adelante</div><div>                //para verificar la integridad de la coincidencia con las</div><div>                //demás letras de la palabra buscada</div>
<div>                for(int z= 0; z < m; z++)</div><div>                {</div><div>                    //Si no hallamos coincidencia en las subsiguientes letras</div><div>                    if(a[x+z]!=b[z])</div><div>
                    {</div><div>                        //Salimos del for previo declarar hallado a false</div><div>                        //para que no se confunda una letra hallada con la</div><div>                        //frase que intentamos hallar</div>
<div>                        hallado=false;</div><div>                        break;</div><div>                    }</div><div>                    else</div><div>                    {</div><div>                        //Caso contrario declaramos como hallado ese caracter coincidente</div>
<div>                        //y seguimos cotejando los demás.</div><div>                        hallado=true;</div><div>                    }</div><div>                }</div><div>                //Si llegamos a este punto, retornamos verdadero, pues</div>
<div>                //hallado esta a true</div><div>                if (hallado) return true;</div><div>            }</div><div>        }</div><div>    }</div><div>    //Si llegamos a este punto el texto no fué hallado.</div>
<div>    return false;</div><div>}</div></div><div>-----------------------------------------------------------------------------------</div><div>Probado en Code::Block 10.05, a mi entender un IDE sencillamente espectacular.</div>
<div><br></div><div>Atentamente les saludo fraternalmente y que Dios les bendiga!</div><div><br></div><div>Elinv.</div><div><br></div><div><a href="http://www.bragadomas.com/">http://www.bragadomas.com/</a></div><div><a href="http://todocporelinv.blogspot.com/">http://todocporelinv.blogspot.com/</a></div>
<div><br></div><div><br><br><br><br><div class="gmail_quote">El 20 de octubre de 2011 18:19, Jose Luis <span dir="ltr"><<a href="mailto:jcmdustin@gmail.com">jcmdustin@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
gracias por tu ayuda david, pero quisiera saber como aser una funcion q trabaje de manera similar quiza... es q me lo pidieron en clase ^^<br>
<br>
El pasado 2011-10-20 20:25:30, David escribió:<br>
<br>
D> Buenas jose luis, por suerte nuestro querido C tiene una funcion que<br>
D> retorna justamente lo que tu quieres. Se llama strstr y este es su<br>
D> prototipo: const char * strstr ( const char * str1, const char * str2<br>
D> );<br>
D> Los valores de retorno son:<br>
D> NULL si no se encuentra la cadena str2 en la cadena str1<br>
D> Un puntero a la primera ocurrencia de la cadena str2 en la cadena str1.<br>
: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
<div><div></div><div class="h5">_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div><br></div>