Ayuda funciones de strings

Iniciado por twiny14, 25 Junio 2014, 23:43 PM

0 Miembros y 2 Visitantes están viendo este tema.

twiny14

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.

MeCraniDOS

Hola twiny14,

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

Código (cpp) [Seleccionar]
/* strtok example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,.-");
  }
  return 0;
}


Puedes leer un poco sobre la función en 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
"La física es el sistema operativo del Universo"
     -- Steven R Garman

Blaster

Cita de: twiny14 en 25 Junio 2014, 23:43 PM
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

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

Saludos


daryo

#3
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
buenas