🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #9001

Problemas al compilar un programa con gcc

#9001
From: quantium
Date: Tue, 10 Sep 2002 17:38
103 lines
3610 bytes
Buenas.
Tengo un problema a la hora de compilar un programa, el mensaje es el 
siguiente:
programa.c:50: warning: passing arg 2 of `strcmp' makes pointer from 
integer without a cast.

Seguidamente os pongo el codigo del programa:
La linea 50 esta debajo del comentario: /* ****** LA LINEA DE ABAJO ES 
LA 50 ******* */




#include <stdio.h>
#include <stdlib.h> /* exit() */
#include <string.h> /* strcmp() */
#include <ctype.h> /* toupper() */


void mensaje_error(void);
char calcular_letra(long int digitos_dni);

int main(int argc,char *argv[])
{
long int digitos_dni;

/* comprobamos si existen errores el los argumentos */
if(argc>4 || ((strcmp(argv[1],"-a")!=0) && (strcmp(argv[1],"-b")!=0)) ){
	mensaje_error();
}

/* pasamos el argv[2] a float*/
digitos_dni=atof(argv[2]);



/* ******************** OPCION -A ******************** */
if(strcmp(argv[1],"-a")==0){

/* comprobamos si el dni es valido */
if(digitos_dni>99999999 || digitos_dni<00000000){
puts("\n\nError. Debes de introducir un dni entre 00000000 y 99999999");
	mensaje_error();
}

printf("\n\nLos digitos del dni son: %ld",digitos_dni);
printf("\nLetra correspondiente es: %c",calcular_letra(digitos_dni));
	puts(INFORMACION);
}



/* *******************  OPCION -B ******************** */
else if(strcmp(argv[1],"-b")==0){

/* comprobamos si el dni es valido */
if(digitos_dni>99999999 || digitos_dni<00000000){
puts("\n\nError. Debes de introducir un dni entre 00000000 y 99999999");
	mensaje_error();
}

/* comprobamos si hay los argumentos suficientes */
else if(argc<4){
puts("\n\nERROR. Debes de insertar correctamente los argumentos");
mensaje_error();
}

printf("\nLetra correspondiente es: %c",calcular_letra(digitos_dni));

/* ****** LA LINEA DE ABAJO ES LA 50 ******* */
if(strcmp(argv[3],calcular_letra(digitos_dni))==0){
printf("El dni es correcto");
}

}
return 0;
}




void mensaje_error(void)
{
	puts("\n---------------------------------------------------");
	puts("|                    OPCIONES                     |");
	puts("---------------------------------------------------");
	puts("|                                                 |");
	puts("| a)- Insetar DNI para saber la letra del dni.    |");
	puts("| b)- Verificar si un DNI es verdadero.           |");
	puts("---------------------------------------------------\n");
	exit(1);
}


char calcular_letra(long int digitos_dni)
{

char 
nif[]={'T','R','W','A','G','M','Y','F','P','D','X','B','N','J','Z','S','Q','V','H','L','C','K','E','T'};
	long int paso1;
	paso1=(digitos_dni/23)*23;
	return nif[digitos_dni-paso1];
}
Technical Details
Message-ID: <3D7E2E32.6080209@lycos.es>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!130.133.1.3!fu-berlin.de!uni-berlin.de!46-madr-x30.libre.retevision.ES!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII-7-bit
X-Google-Thread: f86c8,204458febf913b0e,start
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2002-09-10 10:38:56 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!130.133.1.3!fu-berlin.de!uni-berlin.de!46-madr-x30.libre.retevision.ES!not-for-mail
From: quantium <quantium@lycos.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Problemas al compilar un programa con gcc
Date: Tue, 10 Sep 2002 19:38:58 +0200
Lines: 104
Message-ID: <3D7E2E32.6080209@lycos.es>
NNTP-Posting-Host: 46-madr-x30.libre.retevision.es (62.83.7.46)
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: fu-berlin.de 1031679533 61023566 62.83.7.46 (16 [129971])
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0rc3) Gecko/20020523
X-Accept-Language: en-us, en