elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con strcpy en kubuntu
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con strcpy en kubuntu  (Leído 2,964 veces)
Rom_Stom

Desconectado Desconectado

Mensajes: 3


Ver Perfil
ayuda con strcpy en kubuntu
« en: 15 Junio 2016, 00:30 am »

Hola a todos, estoy aprendiendo en esto de la programación y realmente me ha costado algo de trabajo, por eso pido su ayuda para saber por que no puedo compilar este código con el cual estaba practicando unos ejercicios que me encontré, este es el código:

#include <stdio.h>
#include <stdlib.h>
#include <strings.h>

#define PERS 3



void main()
{
  int edades[PERS];
  char nombres[PERS][25];
  char may_nom[25];
  int may=0,i;
 
  for(i=0; i<PERS; i++)
  {
    printf("Persona %i\n", i+1);
    printf("Nombre: ");
    fflush(stdin );
    scanf("%c", nombres);
    printf("Edad:");
    scanf("%i", &edades);
  }
 
  for(i=0; i<PERS; i++)
  {
    if(edades>= may)
    {
      may=edades;
      strcpy(may_nom, nombres);
    }
  }
 
  printf("La persona con %s tiene la mayor edad %i", may_nom, may);
 
  system("PAUSE");
}


El error que me marca es:

incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default]
       strcpy(may_nom, nombres);

Gracias por su ayuda de antemano.




En línea

class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: ayuda con strcpy en kubuntu
« Respuesta #1 en: 15 Junio 2016, 00:38 am »

El 'warning' ese se produce porque no has incluido 'string.h', sino que has incluido 'strings.h'.

Otra cosa, cuando trabajas con los arreglos no accedes a estos con los corchetes. ¿Error al copiar o que simplemente no los has puesto?

Código
  1. scanf("%c", nombres); // Tendría que ser scanf("%c", nombres[i]);
Hay más casos en los que no pones los corchetes.


En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
BloodSharp


Desconectado Desconectado

Mensajes: 812


¡ Hiperfoco !


Ver Perfil WWW
Re: ayuda con strcpy en kubuntu
« Respuesta #2 en: 15 Junio 2016, 00:44 am »

strcpy(may_nom, nombres);

incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default]
may_nom, nombres);

Eso es porque el segundo parámetro debe ser una dirección de tipo char constante...
char * strcpy ( char * destination, const char * source );

Prueba así:

Código
  1. strcpy(may_nom[i],(const char*)nombres[i]);


B#
En línea



class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: ayuda con strcpy en kubuntu
« Respuesta #3 en: 15 Junio 2016, 01:01 am »

C no es tan estricto en ese sentido, así que no tiene sentido que te salte esa advertencia. Por ejemplo, he compilado el siguiente código diciéndole al compilador que me de alertas (-Wall), y no me ha dado ninguna:

Código
  1. #include <string.h>
  2.  
  3. int main() {
  4.    char nombre[] = "Nombre";
  5.    char copia[64];
  6.  
  7.    strcpy(copia, nombre);
  8.  
  9.    return 0;
  10. }
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ayuda con strcpy en kubuntu
« Respuesta #4 en: 15 Junio 2016, 01:03 am »

Es "%s"

Código
  1. scanf("%s", nombres[i]);

pero recomiendo mejor fgets para evitar el uso de fflush

Código
  1. fgets(nombres[i],25,stdin);

Asi tambien limitamos la entrada a un maximo de 25 caracteres.

Y en lugar de strcpy mejor strncpy

Código
  1. strncpy(may_nom[i],nombres[i],strlen(nombres[i]));


Saludos


« Última modificación: 15 Junio 2016, 01:05 am por AlbertoBSD » En línea

Rom_Stom

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda con strcpy en kubuntu
« Respuesta #5 en: 15 Junio 2016, 03:46 am »

El 'warning' ese se produce porque no has incluido 'string.h', sino que has incluido 'strings.h'.

Otra cosa, cuando trabajas con los arreglos no accedes a estos con los corchetes. ¿Error al copiar o que simplemente no los has puesto?

Código
  1. scanf("%c", nombres); // Tendría que ser scanf("%c", nombres[i]);
Hay más casos en los que no pones los corchetes.


Muchas gracias por la ayuda ahora si ya pude compliarlo
En línea

Rom_Stom

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda con strcpy en kubuntu
« Respuesta #6 en: 15 Junio 2016, 03:47 am »

Es "%s"

Código
  1. scanf("%s", nombres[i]);

pero recomiendo mejor fgets para evitar el uso de fflush

Código
  1. fgets(nombres[i],25,stdin);

Asi tambien limitamos la entrada a un maximo de 25 caracteres.

Y en lugar de strcpy mejor strncpy

Código
  1. strncpy(may_nom[i],nombres[i],strlen(nombres[i]));


Saludos






Hice los cambios sugeridos muchas gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con O.S kubuntu 10.4 debian
GNU/Linux
transfersote 2 2,252 Último mensaje 9 Noviembre 2010, 07:58 am
por transfersote
problema con uso de strcpy
Programación C/C++
m@o_614 2 2,780 Último mensaje 19 Diciembre 2011, 18:37 pm
por m@o_614
dudas con strcpy « 1 2 »
Programación C/C++
m@o_614 12 5,489 Último mensaje 16 Marzo 2014, 00:38 am
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines