Loading...
dzhessika.pachedzhieva avatar dzhessika.pachedzhieva 0 Точки

задача PASSWORD VALIDATOR- ПОМОЩ

program for manipulating string-

Input

  • The possible commands are:
    • "Complete"
    • "Make Upper {index}"
    • "Make Lower {index}"
    • "Insert {index} {char}"
    • "Replace {char} {value}"
    • "Validation"

Output

  • The possible outputs are:
  • "Password must be at least 8 characters long!"
  • "Password must consist only of letters, digits and _!"
    • "Password must consist at least one uppercase letter!"
  • "Password must consist at least one lowercase letter!"
  • "Password must consist at least one digit!"
Тагове:
0
Fundamentals Module
MartinBG avatar MartinBG 4803 Точки

Готово решение няма да Ви е от полза.

Дайте примерен код, който не работи за да Ви посочим грешките или задайте въпрос по конкретен проблем (напр. "Не знам как да проверя дали в стринга има цифра").

1
Miross avatar Miross 0 Точки

using System;
using System.Text;

class Program
{
    static void Main()
    {
        string password = Console.ReadLine();

        string command;
        while ((command = Console.ReadLine()) != "Complete")
        {
            string[] commandArgs = command.Split();
            string action = commandArgs[0];

            switch (action)
            {
                case "Make":
                    string makeAction = commandArgs[1];
                    int index = int.Parse(commandArgs[2]);

                    if (index >= 0 && index < password.Length)
                    {
                        if (makeAction == "Upper")
                        {
                            password = ReplaceCharAtIndex(password, char.ToUpper(password[index]), index);
                        }
                        else if (makeAction == "Lower")
                        {
                            password = ReplaceCharAtIndex(password, char.ToLower(password[index]), index);
                        }

                        Console.WriteLine(password);
                    }
                    break;

                case "Insert":
                    int insertIndex = int.Parse(commandArgs[1]);
                    string insertChar = commandArgs[2];

                    if (insertIndex >= 0 && insertIndex <= password.Length)
                    {
                        password = InsertCharAtIndex(password, insertChar[0], insertIndex);
                        Console.WriteLine(password);
                    }
                    break;

                case "Replace":
                    char replaceChar = commandArgs[1][0];
                    int replaceValue = int.Parse(commandArgs[2]);

                    if (password.Contains(replaceChar))
                    {
                        int newCharValue = replaceChar + replaceValue;
                        char newChar = (char)newCharValue;
                        password = password.Replace(replaceChar, newChar);
                        Console.WriteLine(password);
                    }
                    break;

                case "Validation":
                    ValidatePassword(password);
                    break;

                default:
                    // Ignore invalid command
                    break;
            }
        }
    }

    static string ReplaceCharAtIndex(string str, char newChar, int index)
    {
        StringBuilder sb = new StringBuilder(str);
        sb[index] = newChar;
        return sb.ToString();
    }

    static string InsertCharAtIndex(string str, char insertChar, int index)
    {
        StringBuilder sb = new StringBuilder(str);
        sb.Insert(index, insertChar);
        return sb.ToString();
    }

    static void ValidatePassword(string password)
    {
        bool isValid = true;

        if (password.Length < 8)
        {
            Console.WriteLine("Password must be at least 8 characters long!");
            isValid = false;
        }

        if (!ContainsOnlyLettersDigitsUnderscore(password))
        {
            Console.WriteLine("Password must consist only of letters, digits and underscore!");
            isValid = false;
        }

        if (!ContainsUpperCaseLetter(password))
        {
            Console.WriteLine("Password must consist at least one uppercase letter!");
            isValid = false;
        }

        if (!ContainsLowerCaseLetter(password))
        {
            Console.WriteLine("Password must consist at least one lowercase letter!");
            isValid = false;
        }

        if (!ContainsDigit(password))
        {
            Console.WriteLine("Password must consist at least one digit!");
            isValid = false;
        }

        if (isValid)
        {
            Console.WriteLine("Password is valid");
        }
    }

    static bool ContainsOnlyLettersDigitsUnderscore(string password)
    {
        foreach (char ch in password)
        {
            if (!char.IsLetterOrDigit(ch) && ch != '_')
            {
                return false;
            }
        }

        return true;
    }

    static bool ContainsUpperCaseLetter(string password)
    {
        foreach (char ch in password)
        {
            if (char.IsUpper(ch))
            {
                return true;
            }
        }

        return false;
    }

    static bool ContainsLowerCaseLetter(string password)
    {
        foreach (char ch in password)
        {
            if (char.IsLower(ch))
            {
                return true;
            }
        }

        return false;
    }

    static bool ContainsDigit(string password)
    {
        foreach (char ch in password)
        {
            if (char.IsDigit(ch))
            {
                return true;
            }
        }

        return false;
    }
}
77/100

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.