[C con Clase] Punteros a cadenas

jose luis jcmdustin en gmail.com
Jue Oct 20 22:03:12 CEST 2011


Hola a todos...
necesito su ayuda porfavor, me pidieron que aga un programa que busque una subcadena en una cadena por ejemplo: 
ABCD, la subcadena CD se encuentra en la cadena, mientras que l subcadena BC no. he intentao resolverlo con y sin punteros, y no he podido llegar a la solucion... 

//indicar si una subcadena se encuentra en una cadena
#include <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;
bool buscasubcadena(char a[100],char b[100]);
int main()
{
    char cad[100], subcad[100];
    cout<<"Ingrese la cadena: "; gets(cad);
    cout<<"Ingrese la subcadena: "; gets(subcad);
    if(buscasubcadena(cad,subcad))
    {
        cout<<"La cadena: "<<endl; cout<<cad;
        cout<<endl; cout<<"contiene a la subcadena: "<<endl;
        cout<<subcad;
    }
    return 0;
}
bool buscasubcadena(char *a,char *b)
{
    int n,m;
    char *p=a,*q=b;//quiero usar estos punteros para resolver el problema
    n=strlen(a);
    m=strlen(b);
    while(m>0)
    {
        if (a[m]!=b[n])
            return false;
        m--; n--;
    }
    return true;
}


no se que pueda estar mal en mi codigo, pues mi idea es recorer la cadena desde la ultima pocision e ir comparando cada elemento con la subcadena, pero no logro tener el resultado deseado, agradesco su ayuda :">
Se aprende a programar programando...


Más información sobre la lista de distribución Cconclase