Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/12/2013, 18:51
avi_tr
 
Fecha de Ingreso: noviembre-2013
Mensajes: 7
Antigüedad: 10 años, 6 meses
Puntos: 0
Problemas con la función strtok

Hola a todos, a ver si alguien puede ayudarme por que no veo en que fallo. el problema es que el programa me compila pero cuando lo ejecuto me da error.
Programa:

/*Programa que retorna la palabra más larga de una frase introducida (ignorando comas y puntos).*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define capacidad 255

int main()
{

//declaro tres cadenas
char frase[capacidad],*token,palabralarga[capacidad];

//pido al usuario una frase y se la asigno al vector frase
printf("Introduce una frase: \n");
gets(frase);


//extraigo el primer token y se lo asigno al vector "palabralarga"
token=strtok(frase," .,:;");
strcpy(palabralarga,token);


//creo un bucle para ir extrayendo tokens
while(token!=NULL){
token=strtok(NULL," .,:;");

/*dentro de dicho bucle: condicion de que si el tamaño del token es + grande que el tamaño de "palabralarga" se copie token encima de palabra larga*/
if(strlen(token)>strlen(palabralarga)){
strcpy(palabralarga,token);
}

}

//muestro "palabralarga"
printf("\n%s",palabralarga);

return 0;
}





Estoy haciendo 1º de DAM y son mis primeros ejercicios de cadenas de caracteres, si alguien fuese tan amable y me dijese en que fallo y que puedo hacer para solucionarlo le estaría agradecido.