Hola, que tal?
Les vengo a preguntar sobre una función que me muestra la 1r palabra de un string, tengo esta función hecha, compila bien pero no muestra nada.
char* extraerPalabra(char frase[20]) {
char *elemento = strtok(frase, " ");
strcpy(frase, elemento);
while (elemento != NULL) {
if (!strcmp(frase, elemento)) // Comparamos las dos cadenas
elemento = strtok(NULL, " ");
}
return frase;
}
case 2:
printf("String mostrando la 1r palabra: ' %s '", extraerPalabra(frase));
getch();
break;
me parece que sobra ese if dentro de la función.
#include <stdio.h>
char* extraerPalabra ( char frase[20] ) {
char *elemento = strtok ( frase, " " );
strcpy ( frase, elemento );
while ( elemento != NULL ) {
//if ( !strcmp ( frase, elemento ) ){ // Comparamos las dos cadenas
elemento = strtok ( NULL, " " );
}
return frase;
}
int main () {
char frase[20] = "Hola mundo cruel.";
printf ( "String mostrando la 1r palabra: ' %s '", extraerPalabra ( frase ) );
getchar();
return 0;
}
Gracias por la ayuda, era solamente eso!! ;-) ;-)
Tengo otra función parecida, la de mostrar la palabra más larga del String introducido y no me funciona:
/* Función para mostrar la palabra más larga de una frase */
char* palabraLarga(char frase[20]){
char *elemento = strtok ( frase, " " );
strcpy(frase, elemento);
while ( elemento != NULL ) {
if(strlen(elemento) >= strlen(frase))
strcpy(frase, elemento);
elemento = strtok(NULL, " ");
}
return frase;
}
case 3:
system("cls");
printf("La palabra más larga del String es ' %s '", palabraLarga(frase));
break;
#include <stdio.h>
#include <stdlib.h>
/* Función para mostrar la palabra más larga de una frase */
char* palabraLarga(char frase[50]){
char *elemento = strtok ( frase, " " );
strcpy(frase, elemento);
while ( elemento != NULL ) {
if(strlen(elemento) >= strlen(frase))
strcpy(frase, elemento);
elemento = strtok(NULL, " ");
}
return frase;
}
int main()
{
char frase[] = "Me gusta el chocolate con pan";
printf("La palabra más larga del String es ' %s '\n", palabraLarga(frase));
return 0;
}
Cuidado con los tamaños de los buffer.
saludos.