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.