Console.h:
	codice:
	
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
void InserisciDaTastiera(char *stringa, int Max);
char *StringaArbitraria();
 
Console.c:
	codice:
	#include "Console.h"
/* =============================================
** Function per leggere una stringa di caratteri
** da tastiera
** ---------------------------------------------*/
void InserisciDaTastiera(char *stringa, int Max)
{   
    int i;
    
    fgets(stringa, Max, stdin);
    
    for ( i=0; stringa[i] < 0 || stringa[i] > 31; i++);
    stringa[i]=0;
    
    fflush(stdin);
}
/* =============================================
** Function per leggere una stringa di caratteri
** arbitraria
** ---------------------------------------------*/
char *StringaArbitraria()
{
    int i=0;
    char *c,ci;
    c=(char*)malloc(sizeof(char));
    while(ci!=10) // mi fermo quando trovo un newline \n
    {
      ci=getchar(); // inserisco un singolo carattere
      c[i]=ci; // lo associo puntatore
      i++;
      c=(char*)realloc(c,sizeof(char)*(i+1));
    }
    c[i]='\0'; //inserisco terminatore '\0' 
    
    return c;
}
 
MyLibrary.h:
	codice:
	typedef int (*COMPARE)(void*, void*);
typedef void (*STAMPAINFO)(void*);
//typedef (*COPIA)(void*, void*);
int CompareString( void *val1, void *val2 );
int CompareInteger(void *val1, void *val2);
 
MyLibrary.c
	codice:
	#include "Console.h"
#include "MyLibrary.h"
// Compare string
int CompareString( void *val1, void *val2 )
{
    int result;
    result=strcmp((char *)val1, (char *)val2);
    return result;   
}
// Compare integer
int CompareInteger(void *val1, void *val2)
{
    int result;
    
    // Il primo valore è minore del secondo, restituisco -1
    if (val1 < val2)
        result = -1;
    else if (val1 > val2) // se val1 > val2 restituisco 1
        result = 1;
    else
        result = 0; // altrimenti se va1 = val2 restituisco 0
        
    return result;
}
// Compare float
int CompareFloat(void *val1, void *val2)
{
    int result;
    
    // Il primo valore è minore del secondo, restituisco -1
    if (val1 < val2)
        result = -1;
    else if (val1 > val2) // se val1 > val2 restituisco 1
        result = 1;
    else
        result = 0; // altrimenti se va1 = val2 restituisco 0
        
    return result;
}