Muy buenas a tod@s
Bueno, por desgracia para mi, me toca examinarme al final de programación con todo y me estoy repasando ejercicios que me sean difíciles.
El caso es que me he encontrado con uno que me esta dando guerra y quería ver si me podíais ayudar =)
El ejercicio hace lo siguiente
Con un array de punteros a char, tienes que llenarlo de cadenas y pasarlo a una funcion Hola que recibira como parametro esa cadena de punteros a char y que devolvera un true o un false.
El caso es que de momento llevo algo asi:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 10
#define TRUE 1
#define FALSE 0
//Defino un un elemento BOOL para la funcion Hola
typedef int BOOL;
BOOL Hola(char *[]);
void main(void){
char *array[TAM];
int i=0;
//Asigno memoria para cada uno de los punteros del array
for(i=0; i<=TAM; i++)
array[i]=(char *)malloc(sizeof(char)*TAM);
//Escribo las cadenas
for(i=0; i<=TAM; i++){
printf("Escriba palabras\n");
fgets(array[i], TAM, stdin);
}
//Aqui me salta el error, no funciona a partir de aqui
for(i=0; i<=TAM; i++)
printf("%s", *array[i]);
//Si es la funciona hola es verdadera...
if(Hola(array))
printf("La palabra hola esta en el texto");
else //si no...
printf("La palabra hola no esta en el texto");
return;
}
BOOL Hola(char *array[TAM]){
char cadenaaux="hola"; //Cadena que me permitira comparar con el array de cadenas
int i=0;
//intento de comparacion
while(i<TAM){
if(strcmp(array[i], cadenaaux))
return TRUE;
i++;
}
return FALSE;
}
Paso el array tal cual, sin pasarla por referencia, si no por valor(quiero intentar hacerlo asi aunque no estoy seguro de que se pueda, se que es una tontería ya que crearía otro array de las mismas características )
A ver si podéis echarme una mano, me examino mañana =S
un saludo