Foros del Web » Programación para mayores de 30 ;) » C/C++ »

buscar subcadena dentro de una cadena

Estas en el tema de buscar subcadena dentro de una cadena en el foro de C/C++ en Foros del Web. Hola, necesito crear un subprograma en C que realice la búsqueda de una subcadena dentro de una cadena, de forma que si la encuentra devolverá ...
  #1 (permalink)  
Antiguo 06/03/2010, 07:37
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 8 meses
Puntos: 0
buscar subcadena dentro de una cadena

Hola, necesito crear un subprograma en C que realice la búsqueda de una subcadena dentro de una cadena, de forma que si la encuentra devolverá la posición inicial de la subcadena en la cadena y en caso de no encontrarla devolverá -1. El subprograma lo tengo hecho es este:

int buscar_subcadena(const char cad1[ ],const char cad2[ ]){
int i=0;
int j,k;
int encontrado=0;

while((cad1[i] != '\0') && (encontrado != 1)){
j=0;
k=i;
while((cad1[k]==cad2[j]) && (cad2[j] != '\0')){
k++;
j++;
}
if(cad2[j]=='\0'){
encontrado=1;
}
else{
i++;
}
if(encontrado==0){
i=-1;
}
return(i);
}

Lo único que me falta es el programa principal, he buscado por todas partes, pero no me aclaro, ¿pueden ayudarme, por favor?. Gracias.
  #2 (permalink)  
Antiguo 07/03/2010, 08:19
 
Fecha de Ingreso: agosto-2009
Ubicación: Cartagena, Colombia
Mensajes: 516
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: buscar subcadena dentro de una cadena

Probe la funcion que propones pero no va bien, propongo una:
Código C++:
Ver original
  1. int SubString(char cadena[] , char sub[]){
  2. int con=0,pos=-1;
  3. bool ya=false;
  4.  for(int i=0;i<strlen(cadena);i++){
  5.      if(cadena[i] == sub[con]){
  6.          con++;
  7.          if(!ya)
  8.           pos=i;
  9.          ya=true;
  10.  
  11.      }
  12.  }
  13.  return pos;
  14. }

y si con programa principal te refieres al main, es asi:
Código C++:
Ver original
  1. #include <iostream.h>
  2. #include <conio.h>
  3. #include <string.h>
  4.  
  5.  int SubString(char cadena[],char sub[]){
  6.       //lo que hace la funcion
  7.  }
  8.  
  9. int main(){ //funcion principal
  10.   char c[]="123456";
  11.   char s[]="345";
  12.  cout<<SubString(c,s);
  13.  getch();
  14.  return 0;
  15. }
__________________
Un camino de mil millas comienza por el primer paso. Lao Tse
  #3 (permalink)  
Antiguo 09/03/2010, 02:22
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Respuesta: buscar subcadena dentro de una cadena

Código:
int main(int argc, char **argv)
{
  if (argc < 3)
  {
    printf("Params:: cadena subcadena\r\n");
    return 0;
  }
  int result = buscar_subcadena(argv[1], argv[2]);
  //trata result aca
  return 0;
}
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO

Etiquetas: subcadena, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:10.