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)
| | |-+  Problemas con strcmp y strcat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas con strcmp y strcat  (Leído 2,799 veces)
francisco11

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Problemas con strcmp y strcat
« en: 31 Mayo 2013, 17:53 pm »

Buenos dias tengo un problema al compilar mi codigo de una sopa de letras y es que me arroja el siguiente error: passing argument 1 of strcmp maske pointer from integer without a cast y no encuentro solucion a ese problema.

#include<stdio.h>
#include<conio.h>
#include <string.h>
main()
{
   char  palabra,n,letras[9][9]=
      {
         {'0','1','2','3','4','5','6','7','8'},
            {'1','B','U','K','J','H','S','T','U'},
            {'2','C','L','A','F','2','R','C','W'},
            {'3','D','E','U','B','L','P','I','X'},
            {'4','X','S','L','O','C','Q','T','Y'},
            {'5','O','R','F','J','H','L','E','Z'},
            {'6','P','A','L','M','A','S','C','K'},
            {'7','Q','R','M','C','T','O','U','P'},
            {'8','Z','K','C','E','E','T','B','Q'},
      };
   int r,c,f,i,x;
   printf ("\n\nSOPA DE LETRAS\n\n");
   printf ("\nInstrucciones:");
   printf ("\nColocar las coordenadas de la letra que deseas escojer en los espacios \ncorrespondientes.");
   printf ("\nNombre del jugador:");
   scanf ("%c",&n);
   clrscr();
   printf("El jugador es: %c",n);
   printf("\nEncuentra las palabras correspondientes en la sopa: \nuabc \npalmas \ncitec");
   for(r=0;r<9;r++)
   {
      for(c=0;c<=8;c++)
      {
         gotoxy(c+10,r+5);printf("%c",letras[r][c]);
      }
   }
   
   printf ("cuantas letras tiene la palabra?");
   scanf ("%d", &f);
   
   
   printf ("\n\nIntroduce en orden las coordenadas de las letras para formar la palabra\n");
   for (i=1;i<=f;i+1)
   {
      printf ("\n\nCoordenada en r %d:",i++);
      scanf("%d",&r);
      printf ("\nCoordenada en c %d:",i++);
      scanf("%d",&c);
      strcat (palabra,letras[r][c]);
   }
   
   x= strcmp (palabra, "uabc");
   if (x==0)
   {
      printf ("FELICIDADES ENCONTRASTE LA PALABRA UABC");
   }
   else
      {
         
      }
   
   
   getch();
}
 


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problemas con strcmp y strcat
« Respuesta #1 en: 31 Mayo 2013, 19:06 pm »

Lo primero que debes hacer es cambiar la definición de la función main y evitar el uso de la biblioteca conio de Borland, las razones se encuentran en el tema |Lo que no hay que hacer en C/C++. Nivel basico|.

El error principal ya lo indica el mensaje de error:
Citar
passing argument 1 of strcmp makes pointer from integer without a cast
Se genera en la llamada a strcmp:
Código
  1. char  palabra, ...
  2.  
  3. x = strcmp (palabra, "uabc");
Y la razón es: la función strcmp espera como argumentos las direcciones en memoria de (punteros a) los arrays que almacenan las cadenas a comparar pero tu pasas como primer argumento la variable "palabra" y esta es de tipo char.

Para solucionarlo debes declarar esa variable como un array de caracteres con la capacidad suficiente para cualquier palabra que indique el usuario. También debes agregar el carácter delimitador de cadena '\0' al final de ella y también de todas las almacenadas en el array letras:
Código
  1. char letras[][10] = {
  2.   "012345678",
  3.   "1BUKJHSTU",
  4.   "2CLAF2RCW",
  5.   "3DEUBLPIX",
  6.   "4XSLOCQTY",
  7.   "5ORFJHLEZ",
  8.   "6PALMASCK",
  9.   "7QRMCTOUP",
  10.   "8ZKCEETBQ"
  11. };
  12. char palabra[10];
  13. char n;

Otros errores se encuentran en la parte donde pides cada uno de los caracteres, esta debes cambiarla a:
Código
  1. puts("Introduce en orden las coordenadas de las letras:");
  2. for (i = 0; i < f; i++){
  3.   puts("Numero de fila:");
  4.   scanf("%d", &r);
  5.  
  6.   printf("Numero de columna:");
  7.   scanf("%d", &c);
  8.  
  9.   palabra[i] = letras[r][c];
  10. }
  11. palabra[i] = '\0';

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
Comparar cadenas sin usar strcmp « 1 2 »
Programación C/C++
Rockmore 12 21,400 Último mensaje 25 Octubre 2010, 07:01 am
por do-while
strcat
Programación C/C++
<<<-Basura->>> 4 5,739 Último mensaje 26 Abril 2011, 05:37 am
por <<<-Basura->>>
Ayuda con codigo en c++, problema con strcmp
Programación C/C++
ismaealejandroangel 3 4,171 Último mensaje 5 Octubre 2011, 01:57 am
por dewolo
problema con strcmp
Programación C/C++
m@o_614 1 2,455 Último mensaje 9 Octubre 2013, 22:48 pm
por Eternal Idol
Crear mis propias funciones que hagan de: strcpy, strlen, strcmp, strcat
Programación C/C++
galapok11 2 3,290 Último mensaje 12 Agosto 2016, 17:13 pm
por Yoel Alejandro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines