Título: ayuda con las cadenas Publicado por: piyor6 en 14 Abril 2018, 19:59 pm buenos dias tardes o noches amigos tengo un problema con un ejercicio en c++ tengo que determinar en un vector una cantidad de personas y preguntarle si es discapacitada o no(f/v) hasta hay todo facil pero la duda mia es como hago para pasar la persona discapacitada si el ususario ingreso v
como copio una cadena en otra con la libreria string.h (el profesor no deja hacerlo con string.h) ESTE SERIA EL CODIGO CON LA LIBRERIA PERO NECESITO SIN ESA LIBRERIA AYUDAAAA Y si algun programador me puede dar su whatsApp para preguntarle dudas direnctamente, muchas gracias #include <stdlib.h> #include <stdio.h> #include<string.h> //estructura struct persona{ char nombre[20]; char discapacidad='v'; }personas[30],personaconD[30],personasinD[30]; int numpe,j=0,k=0; void llenar_personas(); void imprimir(); int main(){ llenar_personas(); imprimir(); return 0; } //llenar las personas void llenar_personas(){ printf("ingrese el numero de personas: "); scanf("%d",&numpe); for(int i=0;i<numpe;i++){ fflush(stdin); printf("-------------------------------\n"); printf("PERSONA #%d\n",i+1); printf("nombre: "); fgets(personas.nombre,30,stdin); printf("discapacidad(f/v): "); scanf("%s",&personas.discapacidad); fflush(stdin); //sacando personas discapacitadas (AQUI ESTA MI DUDA) if(personas.discapacidad=='v'){ strcpy(personaconD[j].nombre,personas.nombre); j++; } //sacando personas sin discapacidad(Y AQUI) if(personas.discapacidad=='f'){ strcpy(personasinD.nombre,personas.nombre); k++; } } } //imprimir las peronas void imprimir(){ printf("-------------------------------\n"); printf("PERSONAS CON DISCAPACIDAD\n"); for(int i=0;i<numpe;i++){ printf("%s",personaconD.nombre); } printf("-------------------------------\n"); printf("PERSONAS SIN DISCAPACIDAD\n"); for(int i=0;i<numpe;i++){ printf("%s",personasinD.nombre); } printf("-------------------------------\n"); } Título: Re: ayuda con las cadenas Publicado por: Kenji-chan en 14 Abril 2018, 20:30 pm con la función
int sprintf(char *str, const char *format, ...) de la biblioteca <stdio.h> puedes copiar un string con formato a un char* Título: Re: ayuda con las cadenas Publicado por: MAFUS en 14 Abril 2018, 21:58 pm Hazte tu propia strcpy
Código
Como la original, ésta no tiene protección contra desbordamiento de buffer. Título: Re: ayuda con las cadenas Publicado por: piyor6 en 14 Abril 2018, 23:29 pm no puedo usar funciones en el codigo osea si puedo crear mis propias funciones pero no puedo usar librerias para llamar mas funciones ayudame a escribir el codigo de una funcion que se llame copiar y que copie una cadena a otra vacia
al aso como copiar(char destino,char origen,int num); muchas gracias Título: Re: ayuda con las cadenas Publicado por: Kenji-chan en 15 Abril 2018, 00:24 am la función que te a propuesto MAFUS es una función creada por el, lo único que tiene el nombre de una función ya conocida, pero si pones esa función en tu código y quitas el include de <string.h> te funcionara conmo quieres, pero como ya dijo el
Citar ésta no tiene protección contra desbordamiento de buffer eso tendras que arreglarloTítulo: Re: ayuda con las cadenas Publicado por: piyor6 en 15 Abril 2018, 02:16 am ok, copie todo el codigo y tambien hice la estructura de la funcion y borre el string.h y asi estoy usando la funcion que cree y me tira error Código
} PDT:subiria una imagen del error pero no se subir imagenes Título: Re: ayuda con las cadenas Publicado por: Yuki en 15 Abril 2018, 02:30 am ok, copie todo el codigo y tambien hice la estructura de la funcion y borre el string.h y asi estoy usando la funcion que cree y me tira error Código
} PDT:subiria una imagen del error pero no se subir imagenes Estableces 3 argumentos a strcpy. Título: Re: ayuda con las cadenas Publicado por: piyor6 en 15 Abril 2018, 03:00 am podrias ser mas claro sobre que tengo que hacer para que funcione
Título: Re: ayuda con las cadenas Publicado por: Kenji-chan en 15 Abril 2018, 03:22 am cuando llamas a la funcion le pasas 3 parametros cundo esta solo admite 2
strcpy(personaconD,numpe,personas.nombre); el numpe esta de mas |