Título: Problemas con strcmp y strcat Publicado por: francisco11 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(); } Título: Re: Problemas con strcmp y strcat Publicado por: rir3760 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| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html).
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 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
Otros errores se encuentran en la parte donde pides cada uno de los caracteres, esta debes cambiarla a: Código
Un saludo |