Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Strings] Crear la funcion strstr
Autor Mensaje
Gonsha Sin conexión
Presidente del CEIT
Wub Wub Nation
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.491
Agradecimientos dados: 166
Agradecimientos: 693 en 49 posts
Registro en: Mar 2012
Mensaje: #1
[Strings] Crear la funcion strstr Dudas y recomendaciones Informática I (Electrónica)
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!

[Imagen: tumblr_mram6vK6161rxdmpio1_400.gif]
26-06-2013 14:43
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rishis07 Sin conexión
Campeon del cubo Rubik
arsh
****

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 168
Agradecimientos dados: 22
Agradecimientos: 10 en 6 posts
Registro en: Apr 2013
YouTube
Mensaje: #2
RE: [Strings] Crear la funcion strstr
ya lo hice ese ejercicio, es facil. Lo que tenes que hacer es detectar si el string 2 este dentro del 1. Para hacer esto tenes que ver que cada elemento del string 2 este en el 1.
Ejemplo.
Str1= "hola mundo"
Str2= "alo mun"

te vas fijando si str2[j]=str[i] hasta que str[j]= '\0'

Espero que esto te ayude

Y si str1[i] = '\0' entonces no son iguales
(Este mensaje fue modificado por última vez en: 26-06-2013 14:50 por rishis07.)
26-06-2013 14:49
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maxy Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 9
Agradecimientos dados: 1
Agradecimientos: 2 en 2 posts
Registro en: Sep 2011
Mensaje: #3
RE: [Strings] Crear la funcion strstr
Acabo de ver el post en Facebook, hice un codigo rapido que hace lo que buscas. Seguro no es el optimo, y debe tener algun que otro error puntual, pero como para que te des una idea:



#include <stdlib.h>
#include <stdio.h>
int encontrar(char [], char []);
main(){
if (encontrar("foro", "hola, foro!!!")) printf("Encontrado\n");
else printf("No se ha encontrado el string\n");
system("PAUSE");
}

int encontrar(char s1[], char s2[]){ /* Encontrar s1 en s2 */
int pos=0;
for (;*s1 != '\0' && *s2 != '\0';s2++,pos=0){
for(;s1[pos] == s2[pos] && s1[pos] != '\0';pos++);
if (s1[pos] == '\0'){
return 1;
}
}
return 0;
}


(Este mensaje fue modificado por última vez en: 26-06-2013 15:38 por Maxy.)
26-06-2013 15:33
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Maxy recibio 1 Gracias por este post
Meliodas (26-09-2021)
Feer Sin conexión
Presidente del CEIT
Ing. Electrónico
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.672
Agradecimientos dados: 601
Agradecimientos: 2.969 en 451 posts
Registro en: Apr 2010
Mensaje: #4
RE: [Strings] Crear la funcion strstr
Tiro una posible solución.



/**
* \fn bool my_strstr(char *big, char *sub);
* \brief Compara el conjunto y el posible subconjunto.
* \author
* \date
* \param Entradas de s1 y s2.
* \return Retorna un valor según su condición de verdad.
*/

bool my_strstr(char *big, char *sub){

int i,j;
int ret=0;
for (i=0,j=0;big[i]!=0 && sub[j]!=0;i++){
if(big[i] == sub[j]){
ret = true;
j++;
}
else{
j = 0;
ret = false;
}
}
return (ret);
}


[Imagen: digitalizartransparent.png]
26-06-2013 15:52
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Gonsha Sin conexión
Presidente del CEIT
Wub Wub Nation
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.491
Agradecimientos dados: 166
Agradecimientos: 693 en 49 posts
Registro en: Mar 2012
Mensaje: #5
RE: [Strings] Crear la funcion strstr
Gracias a ambos por sus respuestas.

Maxy -> El codigo no me sirve, pues la funcion no esta devolviendo una direccion de memoria.

Feer -> Lo mismo para vos, tine que devolver una direccion la funcion, no un 1 un 0. Y esa direccion debe ser la de la primera letra de la palabra encontrada en el s2, es decir:

Si mi S1 es

S1 = ola

y mi S2 es

S2 = Hola

La situacion deberia ser algo asi:

[Imagen: t1e.png]

¿Se entiende?

[Imagen: tumblr_mram6vK6161rxdmpio1_400.gif]
26-06-2013 21:09
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
brunodiaz Sin conexión
The Dark Knight
Bla
**********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7.707
Agradecimientos dados: 92
Agradecimientos: 384 en 135 posts
Registro en: May 2008
Mensaje: #6
RE: [Strings] Crear la funcion strstr
Usa el de cualquiera de ellos cambiando el return y listo.

Para evitar estas cosas esta bueno poner el prototipo de la funcion.
(Este mensaje fue modificado por última vez en: 26-06-2013 21:42 por brunodiaz.)
26-06-2013 21:42
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maik Sin conexión
Presidente del CEIT
.
********

Otra
Otra

Mensajes: 5.353
Agradecimientos dados: 47
Agradecimientos: 197 en 141 posts
Registro en: Sep 2011
Mensaje: #7
RE: [Strings] Crear la funcion strstr
y si sabes lo que tiene que hacer porque no lo haces?

te van a romper el orto si seguis asi. nunca te dijeron qeu deberias dejar de plantear problemas y empezar a plantear soluciones?


lo grueso del programa ya te lo pasaron, tambien lo podias googlear. simplemente te falta modificar apenas el programa (no pueden ser mas de 2 o 3 lineas)

MODS
[Imagen: 2r5t075.jpg]
26-06-2013 21:52
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Feer Sin conexión
Presidente del CEIT
Ing. Electrónico
**********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 4.672
Agradecimientos dados: 601
Agradecimientos: 2.969 en 451 posts
Registro en: Apr 2010
Mensaje: #8
RE: [Strings] Crear la funcion strstr
Qué bajon, siempre crei que la strstr devolvía 1 si estaba 0 si no...
Es mas hice el TP de string de la guía 2010 y ahí la consigna decía eso.

En fin, fijate si modificando un poco sale si no el finde me fijo.

[Imagen: digitalizartransparent.png]
26-06-2013 22:26
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Gonsha Sin conexión
Presidente del CEIT
Wub Wub Nation
********

Ing. Electrónica
Facultad Regional Buenos Aires

Mensajes: 1.491
Agradecimientos dados: 166
Agradecimientos: 693 en 49 posts
Registro en: Mar 2012
Mensaje: #9
RE: [Strings] Crear la funcion strstr
(26-06-2013 22:26)Feer escribió:  Qué bajon, siempre crei que la strstr devolvía 1 si estaba 0 si no...
Es mas hice el TP de string de la guía 2010 y ahí la consigna decía eso.

En fin, fijate si modificando un poco sale si no el finde me fijo.

Gracias =)

[Imagen: tumblr_mram6vK6161rxdmpio1_400.gif]
26-06-2013 22:30
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Maik Sin conexión
Presidente del CEIT
.
********

Otra
Otra

Mensajes: 5.353
Agradecimientos dados: 47
Agradecimientos: 197 en 141 posts
Registro en: Sep 2011
Mensaje: #10
RE: [Strings] Crear la funcion strstr
mirá, tenes el largo del string 2, y cuando terminas la comparacion estas parado en el final de la comparacion dentro del string 1, entonces podes devolverle la posicion i - el largo del string 2, ahi va a ser la posicion que tenes devolver.

MODS
[Imagen: 2r5t075.jpg]
28-06-2013 22:02
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)