Untitled

 avatar
unknown
c_cpp
2 months ago
1.2 kB
2
Indexable
/*
Un dato sistema informatico richiede che ciascun username sia una stringa composta da almeno N caratteri, di cui
almeno NL lettere dell’alfabeto maiuscolo o minuscolo e non contenga alcun carattere speciale appartenente ad una
stringa di controllo SYMB (per esempio "%:;-+"). Scrivere un sottoprogramma che riceve come parametri una
stringa rappresentante un username, gli interi N ed NL e la stringa SYMB; il sottoprogramma restituisce 1 se la stringa
rappresenta un username valida, altrimenti 0.
Esempio: con N=8, NL=5 e SYMB="%:;-+", "Domani.898" è un username valida, mentre "domani:898" e
"do.898" non lo sono.
*/

#include <stdio.h>
#include <string.h>

int username_valido(char *username, int N, int NL, char *SYMB)
{
    int len = strlen(username);

    if(len < N)
    {
        return 0;
    }

    int count =0;

    for(int i=0; i<len; i++)
    {
        if(username[i] >= 'a' && username[i] <= 'z' || (username[i] >= 'A' && username[i] <= 'Z'))
        {
            count++;
        }

        for(int j=0; SYMB[j] != '\0'; j++)
        {
            if(username[i] == SYMB[j])
            {
                return 0;
            }
        }

    }

    if(count < NL)
    {
        return 0;
    }

    return 1;
}

Editor is loading...
Leave a Comment