Cool C/C++

Programacion en C/C++

Home FAQ Verificar si una subcadena está contenida en otra
Verificar si una subcadena está contenida en otra PDF Imprimir E-mail
Escrito por adrianvaca   
Martes, 22 de Marzo de 2011 23:35

La siguiente función resuelve el trabajo usando funciones de string.h:

int verificar( char *cadena, char *subcadena )
{
   char *tmp = cadena;
   char *pdest;
 
   pdest = strstr( tmp, subcadena );
   if( pdest ) return 1;

   return 0;
}



Las siguientes funciones NO usan funciones de string.h

int longitud(char *cadena)
{
   int i = 0;

   while(cadena[ i ]!='\0')
        i++;

   return i;
}

int verificar(char *cadena, char *subcadena)
{
    int i, j;
    int l_cadena = longitud(cadena);
    int l_subcadena = longitud(subcadena);

    if(l_cadena < l_subcadena)
      return 0;
    if(cadena[ 0 ]=='\0' && subcadena[ 0 ]=='\0')
       return 1;

    for(i=0; i < l_cadena; i++)
       if(cadena[ i ]==subcadena[ 0 ])
       {
           if(l_cadena-i < l_subcadena)
              return 0;

            for(j=0; j < l_subcadena; j++)
                 if(cadena[ i+j ]!=subcadena[ j ])
                    break;

            if(j==l_subcadena)
               return 1;
       }

    return 0;
}
 
Otros artículos

Escribir un comentario


Código de seguridad
Refescar