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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  PROBLEMA EN COMPILACION Y FUNCION
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: PROBLEMA EN COMPILACION Y FUNCION  (Leído 3,122 veces)
BJM

Desconectado Desconectado

Mensajes: 41


Ver Perfil
PROBLEMA EN COMPILACION Y FUNCION
« en: 3 Octubre 2012, 23:33 pm »

Deseo que el usuario introduzca una cadena y luego sea impresa al inverso, el problema es que el compilador me indica el siguiente error : 28  invalid conversion from `int' to `char*' y ademas en algunas ocasiones me salta a otro codigo fuente de instrucciones desconocidas.

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

 char invertir(char cad[80]);
 int i,tam,nuevo[80];
main(){
       
       char cad[80];
       printf("Ingrese tamaño de la cadena (maximo 80 caracteres) : ");
       scanf("%d",&tam);
       
       printf("\n Ingrese cadena: ");
       
       for(i=0;i<tam;i++){
        scanf("%d",&cad);
       }
       
       printf("\n Cadena inversa: ");
       printf("%s",invertir(cad));
       printf("\n\n");
       system("pause");
       }
       
       char invertir(char cad[]){
            do{
             for(i=tam-1;i<=0;i++){             
            strcpy(nuevo,cad);
            return (nuevo);
            }while((getchar(cad))!=NULL)
                                   
            }
              }
           


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: PROBLEMA EN COMPILACION Y FUNCION
« Respuesta #1 en: 4 Octubre 2012, 00:24 am »


       printf("Ingrese tamaño de la cadena (maximo 80 caracteres) : ");
       scanf("%d",&tam);<==NO ES LÓGICO ESTE DATO, SE INGRESA LA CADENA Y SE CALCULA
Me cansé de tu código, así que te propongo otro:
Código
  1. #include <stdio.h>
  2. main()
  3. {
  4.    int i=0;
  5.    char cadena [100];
  6.    fgets(cadena,100,stdin); /*<==obtiene cadena con espacios incluidos*/
  7.    while (cadena[++i]!='\0'); /*calcula la longitud de la cadena*/
  8.    i=i-1;
  9.    while (i>=0) */ <==imprime al revés*/
  10.        printf ("%c",cadena [i--]);
  11.    printf ("\nPresione ENTER para salir:");
  12.    while (getchar()!='\n') ;
  13.    return 0;
  14. }
  15.  
       


En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: PROBLEMA EN COMPILACION Y FUNCION
« Respuesta #2 en: 4 Octubre 2012, 00:40 am »

Me cansé de tu código, así que te propongo otro:
Código
  1. #include <stdio.h>
  2. main()
  3. {
  4.    int i=0;
  5.    char cadena [100];
  6.    fgets(cadena,100,stdin); /*<==obtiene cadena con espacios incluidos*/
  7.    while (cadena[++i]!='\0'); /*calcula la longitud de la cadena*/
  8.    i=i-1;
  9.    while (i>=0) */ <==imprime al revés*/
  10.        printf ("%c",cadena [i--]);
  11.    printf ("\nPresione ENTER para salir:");
  12.    while (getchar()!='\n') ;
  13.    return 0;
  14. }
  15.  
       

fgets(cadena,100,stdin); /*<==obtiene cadena con espacios incluidos*/

Muy pero muy bueno!! Eso lo sacaste del reto verdad XD... Yo lo hice pero solo una palabra, de haber sido cadena creo que hubiera sacado con string, pero esta forma es excelente.
En línea


leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: PROBLEMA EN COMPILACION Y FUNCION
« Respuesta #3 en: 4 Octubre 2012, 01:03 am »

fgets(cadena,100,stdin); /*<==obtiene cadena con espacios incluidos*/

Muy pero muy bueno!! Eso lo sacaste del reto verdad XD... Y
NO lo saqué yo y lo colgué yo en los retos.
Saludos! .... y merecía más puntos por lo corto que es.
En línea

BJM

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Re: PROBLEMA EN COMPILACION Y FUNCION
« Respuesta #4 en: 5 Octubre 2012, 16:18 pm »

leosansan tu codigo me funciono, gracias por tu aporte, pero tengo algunas dudas:

fgets(cadena,100,stdin); /* stdin funciona como archivo no? de ser asi: cadena no deberia primero ser escrita en stdin para luego ser leida en esa archivo*/

 while (cadena[++i]!='\0');
    i=i-1;
    while (i>=0)
        printf ("%c",cadena [i--]);
    printf ("\nPresione ENTER para salir:");
    while (getchar()!='\n') ;

/*por que en los while colocas ; y no llaves { }*/
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: PROBLEMA EN COMPILACION Y FUNCION
« Respuesta #5 en: 5 Octubre 2012, 16:53 pm »

fgets(cadena,100,stdin); /* stdin funciona como archivo no? de ser asi: cadena no deberia primero ser escrita en stdin para luego ser leida en esa archivo*/
Cuando una aplicación de consola inicia se tienen tres streams predeterminados (stdin, stdout y stderr), puedes utilizarlos casi de la misma forma que un archivo abierto con "fopen".


while (cadena[++i]!='\0');
    i=i-1;
[...]
/*por que en los while colocas ; y no llaves { }*/
Porque en ese bucle no hay nada que hacer en su cuerpo, sin embargo el lenguaje C requiere que todo bucle tenga un cuerpo. Para cumplir con esa regla se pone una sentencia nula:
Código
  1. /* sentencia nula (nada) */ ;

La convencion en estos casos es colocar la sentencia nula en una linea aparte:
Código
  1. while (cadena[++i] != '\0')
  2.   ;

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
BJM

Desconectado Desconectado

Mensajes: 41


Ver Perfil
Re: PROBLEMA EN COMPILACION Y FUNCION
« Respuesta #6 en: 5 Octubre 2012, 22:02 pm »

Porque en ese bucle no hay nada que hacer en su cuerpo, sin embargo el lenguaje C requiere que todo bucle tenga un cuerpo. Para cumplir con esa regla se pone una sentencia nula:
Código
  1. /* sentencia nula (nada) */ ;

La convencion en estos casos es colocar la sentencia nula en una linea aparte:
Código
  1. while (cadena[++i] != '\0')
  2.   ;

Un saludo
[/quote]

Gracias rir3760 ,Quiere decir que cuando una funcion de control contiene instrucciones simples como las anteriores, no es de primera necesidad las llaves?

En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: PROBLEMA EN COMPILACION Y FUNCION
« Respuesta #7 en: 6 Octubre 2012, 01:16 am »

Correcto. Si se trata de una sola sentencia no es necesario utilizar llaves.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error de compilación: Se esperaba una función o una variable
Programación Visual Basic
johndoe90 2 3,495 Último mensaje 4 Mayo 2009, 12:49 pm
por johndoe90
Problema con la compilacion... « 1 2 »
Programación C/C++
Karcrack 13 11,987 Último mensaje 30 Agosto 2010, 21:07 pm
por Littlehorse
Problema compilación con Gcc
Programación C/C++
R3tr0 3 4,297 Último mensaje 20 Marzo 2011, 13:13 pm
por R3tr0
Problema compilacion con dev-c++
Programación C/C++
akibara 1 5,143 Último mensaje 1 Junio 2011, 06:18 am
por 4rkn63l
Problema con compilación
Bugs y Exploits
Xenomorfo77 4 3,820 Último mensaje 23 Enero 2012, 13:18 pm
por D4RIO
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines