Buonasera, avrei dei dubbi sulla correttezza di due funzioni
Il programma è così composto:
il file head.h contiene:
typedef enum color { NERO, ROSSO, BIANCO } color_t;
più l'elenco delle seguenti funzioni:
- char color_to_char (color_t a);
trasforma a in un carattere
Es:
'N' se a contiene NERO
'R' se a contiene ROSSO
'B' se a contiene BIANCO
'?' altrimenti
- int char_to_color (char b);
trasforma un carattere in color_t
Es:
NERO se b=='N'
ROSSO se b=='R'
BIANCO se b=='B'
0 altrimenti
il file colore.c contiene l'implementazione delle funzioni color_to_char e char_to_color
char color_to_char (color_t a) {
char b;
if (a==NERO)
b='N';
else if (a==ROSSO)
b='R';
else if (a==BIANCO)
b='B';
else b= '?';
a=b;
return(a);
}
int char_to_color (char b) {
if(b=='N')
b = NERO;
else if(b=='R')
b = ROSSO;
else if(b=='B')
b = ROSSO;
else b = 0;
return 1;
}
Vorrei sapere se mi potete dare una dritta sugli errori. Dovrei fare il cast per passare da un tipo ad un altro? Per quanto riguarda il confronto stringhe della prima funzione all'inizio avevo pensato alla funzione strcmp()
Es:
if(strcmp(a,"NERO")==0)
a='N';