Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: twiny14 en 25 Junio 2014, 23:43 pm



Título: Ayuda funciones de strings
Publicado por: twiny14 en 25 Junio 2014, 23:43 pm
Buenas!
Soy nueva en el foro y en esto de la programación, hace unos pocos meses empecé a aprender C.
Me dieron estos datos y tengo que escribir la definición de la función:
void my_strtok(char *strin, char *strout[], char tok);
donde:
char *strin es el string que queremos separar en partes
char *strout[] Un vector con los strings separados. El vector tendrá un string por posición del vector.
El vector finalizará con un puntero nulo cuando no hayan mas partes. Si hay error será un puntero nulo.
char *tok es un carácter que nos permite separar el texto

Alguien podría ayudarme? Estoy perdida y nisiquiera sé por donde empezar.
Gracias.


Título: Re: Ayuda funciones de strings
Publicado por: MeCraniDOS en 26 Junio 2014, 01:43 am
Hola twiny14,

Nadie te va a hacer la tarea, pero como ayuda te puedo decir que lo que te piden es esto:

Código
  1. /* strtok example */
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. int main ()
  6. {
  7.  char str[] ="- This, a sample string.";
  8.  char * pch;
  9.  printf ("Splitting string \"%s\" into tokens:\n",str);
  10.  pch = strtok (str," ,.-");
  11.  while (pch != NULL)
  12.  {
  13.    printf ("%s\n",pch);
  14.    pch = strtok (NULL, " ,.-");
  15.  }
  16.  return 0;
  17. }

Puedes leer un poco sobre la función en http://www.cplusplus.com/reference/cstring/strtok/ (http://www.cplusplus.com/reference/cstring/strtok/)

Lo que puedes hacer dentro de esa funcion es recorrer con un bucle la cadena que quieres separar y contar las veces que aparece el caracter, luego declaras una matriz con ese tamaño y simplemente vas copiando hasta que encuentres ese caracter, luego incrementas el indice de la matriz y sigues copiando, asi hasta el final  :silbar:

Espero que te sirva de ayuda,

Saludos


Título: Re: Ayuda funciones de strings
Publicado por: Blaster en 26 Junio 2014, 03:47 am
Me dieron estos datos y tengo que escribir la definición de la función:
void my_strtok(char *strin, char *strout[], char tok);

Te paso un enlace donde puedes ver la implementación de la función estandar strtok

http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/string/strtok.c?rev=1.6;content-type=text%2Fplain (http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/string/strtok.c?rev=1.6;content-type=text%2Fplain)

Como puedes ver es muy sencilla, creo que con eso ya tendras una idea de como funciona

Saludos



Título: Re: Ayuda funciones de strings
Publicado por: daryo en 26 Junio 2014, 04:01 am
en resumen es para partir una cadena en trozos o fragmentos de la cadena.
podrias ejecutar el programa de @MeCraniDOS para hacerte una idea mas clara