26-06-2013, 14:43
Hola gente como andan?
Bueno estoy teniendo serios problemas con re-crear la función strstr. Estuve pensando como tendria que funcionar pero no lo puedo plasmar en un código. Lo que pensé fue lo siguiente (espero ser claro con mi explicación):
Creo 2 strings, String_a y String_b, de X tamaño (solo para ejemplificar). Decido (por convención) de buscar en el String_b, el String_a (por ende me limitare a escribir en el String_a una palabra mas corta que en el String_b). Luego en la función (la cual devuelve un puntero a char, es decir, la dirección de memoria del comienzo de la palabra de String_a, encontrada en el String_b), creo un while anidado, en donde en el while exterior habrá un puntero que se movera (recorrerá) el String_a y el while interior otro puntero que recorrerá el String_b. La idea es que en el while donde esta el puntero que recorre el String_b, se compare el valor de lo que hay en esa posición del String_b con el valor que hay en la misma posición del String_a y que si hay coincidencia, ambos punteros se desplacen en 1 posición. Si no hay coincidencia, que solo el puntero del while interior (nuevamente, el que apunta al String_b) se desplace. Repetir esto hasta que se complete la palabra con las coincidencias y finalmente devolver mediante un return la dirección de memoria de la primer letra que coincidió en las continuas coincidencias. Es medio dificil de explicar, creo que conceptualmente lo tengo pero no se aplicarlo.
Quien me hace magia y me lo deja resuelto? Muchas gracias!
Bueno estoy teniendo serios problemas con re-crear la función strstr. Estuve pensando como tendria que funcionar pero no lo puedo plasmar en un código. Lo que pensé fue lo siguiente (espero ser claro con mi explicación):
Creo 2 strings, String_a y String_b, de X tamaño (solo para ejemplificar). Decido (por convención) de buscar en el String_b, el String_a (por ende me limitare a escribir en el String_a una palabra mas corta que en el String_b). Luego en la función (la cual devuelve un puntero a char, es decir, la dirección de memoria del comienzo de la palabra de String_a, encontrada en el String_b), creo un while anidado, en donde en el while exterior habrá un puntero que se movera (recorrerá) el String_a y el while interior otro puntero que recorrerá el String_b. La idea es que en el while donde esta el puntero que recorre el String_b, se compare el valor de lo que hay en esa posición del String_b con el valor que hay en la misma posición del String_a y que si hay coincidencia, ambos punteros se desplacen en 1 posición. Si no hay coincidencia, que solo el puntero del while interior (nuevamente, el que apunta al String_b) se desplace. Repetir esto hasta que se complete la palabra con las coincidencias y finalmente devolver mediante un return la dirección de memoria de la primer letra que coincidió en las continuas coincidencias. Es medio dificil de explicar, creo que conceptualmente lo tengo pero no se aplicarlo.
Quien me hace magia y me lo deja resuelto? Muchas gracias!