Untitled
/* Scrivere un sottoprogramma check che ricevute due stringhe, tentativo e soluzione, di ugual lunghezza (è senz’altro così) rappresentanti due vocaboli, restituisce una stringa contenente: • = se il carattere in posizione i di tentativo è uguale al carattere in posizione i di soluzione, • + se il carattere in posizione i di tentativo è uguale ad un carattere di soluzione in posizione j con j ̸= i, • X se il carattere in posizione i di tentativo non appartiene a soluzione. Per esempio, se il sottoprogramma riceve in ingresso: tentativo: "parco" soluzione: "torre" il sottoprogramma restituisce la stringa "XX=X+". */ #include <stdio.h> #include <string.h> #include <stdlib.h> char* check(char *soluzione, char *tentativo) { int len = strlen(soluzione); char *risultato = (char*)malloc((len+1)*sizeof(char)); if(risultato == NULL) { return NULL; } risultato[len] = '\0'; for(int i=0; i<len; i++) { if(tentativo[i] == soluzione[i]) { risultato[i] = '='; } else{ int trovato =0; for(int j=0; j<len && !trovato; j++) { if(i != j && tentativo[i] == soluzione[j]) { trovato = 1; } } if(trovato == 0) { risultato[i] = 'X'; }else{ risultato[i] = '+'; } } } return risultato; } int main() { return 0; }
Leave a Comment