Untitled

 avatar
unknown
c_cpp
a month ago
1.6 kB
5
Indexable
/*
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