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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


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

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Ayuda urgente #C en este ejercicio
« en: 18 Enero 2018, 21:06 pm »

Hola a todos,

Me han pedido hacer este ejercicio y llevo dos días estancado sin poder resolver-lo. He visto ejemplo y tal en la web pero es que no me salgo.

Agradecería que alguien me ayudase.

Os dejo el enunciado.

Deberás crear un fichero.h (el nombre queda a tu elección). En este fichero, que deberá estar protegido para que se pueda incluir varias veces, deberás definir una constante, llamada MAX. Puede tomar el valor que quieras, con un mínimo de 512 y un máximo de 8192. En este punto .h declararás una función, cuyo nombre queda a tu elección.
En la función main, pedirás al usuario que introduzca tres palabras. Esas tres palabras las pasarás como parámetros a la función que habrás declarado en el fichero .h. La función devolverá una cadena (creada con malloc dentro de la función), que contendrá las tres palabras, separadas por espacio en blanco.
La función la implementarás en el fichero .c, después de la función main.
En el fichero .c, no olvides incluir (con #include) el fichero .h, poniendo su nombre entre comillas (no entre "<", ">").


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda urgente #C en este ejercicio
« Respuesta #1 en: 18 Enero 2018, 21:19 pm »

¿Qué llevas hecho?
No te vamos a escribir todo desde cero, te resolveremos dudas puntuales o te lo explicaremos hasta que lo entiendas (a partir de lo que veamos en donde fallas).


En línea

ayoub20600

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Ayuda urgente #C en este ejercicio
« Respuesta #2 en: 18 Enero 2018, 21:52 pm »

¿Qué llevas hecho?
No te vamos a escribir todo desde cero, te resolveremos dudas puntuales o te lo explicaremos hasta que lo entiendas (a partir de lo que veamos en donde fallas).
Vale.

Yo tengo una cabecera que se llama ayoub.h, luego tengo main.c y implementacion.c

en la cabecera tengo este código:

#ifndef _AYOUB_H
#define _AYOUB_H

//
#include<stdio.h>
#include <string.h>
//#include <cstring.h>

#define MAX 50

void uniones(char *a, char *b, char *c);

#endif

El fichero main.c tengo esto:

#include<stdio.h>
//#include <cstdlib>
#include"ayoub.h"
#include <string.h>



 int main(){
   
   printf("Introduzca tres palabras");
   char a [15]; //el MAX me da error
   char b [15];
   char c [15];

   printf("\nPalabra A");
   gets(a); // solo lee 1 palabra
   printf("\nPalabra A");
   gets(b); // solo lee 1 palabra
   printf("\nPalabra A");
   gets(c); // solo lee 1 palabra
   
   printf("Nombre de palabra A ingresado es:  ");
   puts(a);
   
   printf("Nombre de palabra B ingresado es:  ");
   puts(b);
   
   printf("Nombre de palabra C ingresado es:  ");
   puts(c);
   

   
   char cadena_union = uniones( a, b, c);
   puts(cadena_union);
//   system("PAUSE");
   return 0;
}

Aquí se supone que debo rellenar las 3 cadena y devolver el resultado a la función de la cabecera.

El el fichero de implementacion.h tengo esto:
#include"ayoub.h"
#include<stdio.h>
#include<string.h>

using namespace std;


void uniones(){

   int longitud1, longitud2, longitud3 = 0;
   int suma_longitudes = 0;
   longitud1= strlen(a);                              //copio cuantos el numero de caracteres a longitud1
   longitud2= strlen(b);                              //copio cuantos el numero de caracteres a longitud2
   longitud3= strlen(c);                              //copio cuantos el numero de caracteres a longitud3
   printf("\nLa cadena A tiene %d caracteres", longitud1);      //aqui simplemente visualizo cuantos son
   printf("\nLa cadena B tiene %d caracteres", longitud2);
   printf("\nLa cadena C tiene %d caracteres", longitud3);
   
   suma_longitudes=longitud1+longitud2+longitud3;             //sumo las longitudes para asignar espacio para la string cadena
   
            char *cadena = (char *)malloc((suma_longitudes + 1) *sizeof(char));//asigno el espacio acorde con lo que he introducido en las 3 cadenas de palabras
            printf("\nCadena: ");
            //scanf("%s", cadena);
            strcpy(cadena, a);//esto no sé si esta bien, pero lo que intento hacer es copiar el contenido de las 3 en una cadena
            strcpy(cadena, b);
            strcpy(cadena, c);
            printf("\n El resultado es %s", cadena);
}
Aquí lo que intento hacer es reservar espacio en la memoria con malloc y copiar el contenido de las 3 cadenas (a,b,c) en una dejando espacio entre cada contenido.

Saludos
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda urgente #C en este ejercicio
« Respuesta #3 en: 19 Enero 2018, 00:40 am »

Los includes sobran en el ayoub.h ya que no haces uso de ninguna función de ellas.
Implementación.c sobra, el ejercicio te pide el main y justo debajo, en el mismo archivo, la implementación de la función.
La firma de la declaración y de la definición de la función deben coincidir. Deben devolver el mismo tipo de dato y los argumentos deben ser del mismo tipo.
La función debe devolver una cadena, por lo que la declaración que hay en la cabecera debería ser char* y no void como tipo de dato devuelto por la función.
Si quieres una constante definida en la cabecera usa la palabra clave const. En main deberás declararla como extern.
strcpy còpia al principio de la cadena destino, lo que necesitas es concatenar cadenas y se hace con strcat.
El enunciado dice que debes separar con espacios las palabras pero al adquirir espacio con malloc no tienes en cuenta los espacios.
De igual forma tampoco los incluyes al formar la cadena.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con este ejercicio
Ejercicios
:ohk<any> 3 5,101 Último mensaje 2 Septiembre 2008, 06:17 am
por :ohk<any>
AYUDA URGENTE EN EJERCICIO DE TRES EN LINEA//PUPILO EN APUROS
Programación C/C++
nelxiton 0 1,935 Último mensaje 25 Junio 2012, 22:04 pm
por nelxiton
Ayuda para resolver este ejercicio en C++ URGENTE!
Programación C/C++
larregui15 6 4,501 Último mensaje 16 Julio 2015, 23:46 pm
por Eternal Idol
Ayuda urgente con ejercicio de C++
Programación C/C++
Izzy234 0 1,855 Último mensaje 26 Noviembre 2017, 16:50 pm
por Izzy234
Ayuda Ejercicio java ¡Urgente!
Java
ayoub20600 2 2,075 Último mensaje 11 Octubre 2019, 07:17 am
por ayoub20600
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines