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


 


Tema destacado: Cifrar documentos-carpetas con GnuPG en Linux y Windows


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  ayuda con las cadenas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con las cadenas  (Leído 424 veces)
piyor6

Desconectado Desconectado

Mensajes: 5


Ver Perfil
ayuda con las cadenas
« en: 14 Abril 2018, 19:59 »

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


En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 73


Ver Perfil
Re: ayuda con las cadenas
« Respuesta #1 en: 14 Abril 2018, 20:30 »

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*


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.100



Ver Perfil
Re: ayuda con las cadenas
« Respuesta #2 en: 14 Abril 2018, 21:58 »

Hazte tu propia strcpy
Código
  1. char* strcpy(char *destino, const char* origen) {
  2.    register unsigned long long i = 0;
  3.    register char c;
  4.  
  5.    for(i=0; (c=origen[i]) != '\0'; ++i)
  6.        destino[i] = c;
  7.  
  8.    destino[i] = '\0';
  9.  
  10.    return destino;
  11. }

Como la original, ésta no tiene protección contra desbordamiento de buffer.
En línea

while(is_alive(yourself)) {
    make_true(yourself, yourdreams);
}
piyor6

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: ayuda con las cadenas
« Respuesta #3 en: 14 Abril 2018, 23:29 »

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
En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 73


Ver Perfil
Re: ayuda con las cadenas
« Respuesta #4 en: 15 Abril 2018, 00:24 »

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 arreglarlo
En línea

piyor6

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: ayuda con las cadenas
« Respuesta #5 en: 15 Abril 2018, 02:16 »




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
  1. for(int i=0;i<numpe;i++){
  2. //sacando personas discapacitadas
  3. if(personas[i].discapacidad=='v'){
  4.  strcpy(personaconD[i],numpe,personas[i].nombre);
  5. }
  6.  
   
}
PDT:subiria una imagen del error pero no se subir imagenes
En línea

Yuki

Desconectado Desconectado

Mensajes: 55


El error es una muestra de la incompetencia.


Ver Perfil WWW
Re: ayuda con las cadenas
« Respuesta #6 en: 15 Abril 2018, 02:30 »



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
  1. for(int i=0;i<numpe;i++){
  2. //sacando personas discapacitadas
  3. if(personas[i].discapacidad=='v'){
  4.  strcpy(personaconD[i],numpe,personas[i].nombre);
  5. }
  6.  
   
}
PDT:subiria una imagen del error pero no se subir imagenes

Estableces 3 argumentos a strcpy.
En línea

piyor6

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: ayuda con las cadenas
« Respuesta #7 en: 15 Abril 2018, 03:00 »

podrias ser mas claro sobre que tengo que hacer para que funcione
En línea

Kenji-chan

Desconectado Desconectado

Mensajes: 73


Ver Perfil
Re: ayuda con las cadenas
« Respuesta #8 en: 15 Abril 2018, 03:22 »

cuando llamas a la funcion le pasas 3 parametros cundo esta solo admite 2
strcpy(personaconD,numpe,personas.nombre);
el numpe esta de mas
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con cadenas
Programación Visual Basic
Mr pom0 1 532 Último mensaje 4 Marzo 2008, 19:06
por Chefito
ayuda con cadenas en c++
Programación C/C++
goditozor 4 1,051 Último mensaje 1 Noviembre 2009, 22:50
por Eternal Idol
Ayuda con cadenas. « 1 2 3 »
Programación C/C++
User 21 4,256 Último mensaje 17 Julio 2012, 21:44
por User
Ayuda con cadenas de caracteres.
Programación C/C++
GilbertoBrewer 8 1,494 Último mensaje 28 Noviembre 2014, 17:33
por GilbertoBrewer
Ayuda, arreglo de 15 cadenas con C++
Programación C/C++
Kali94 2 431 Último mensaje 27 Julio 2016, 00:51
por Kali94
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines