1ra palabra de un String

Iniciado por sora_ori, 19 Febrero 2015, 23:29 PM

0 Miembros y 1 Visitante están viendo este tema.

sora_ori

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;

vangodp

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;
}

sora_ori

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;

fary

#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.
Un byte a la izquierda.