Загрузка данных


using System;

namespace StringProcessing
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("=== Обработка строк ===\n");
            
            Task2();
            Task3();
            Task4();
            Task5();
            
            Console.WriteLine("\n=== Конец программы ===");
            Console.ReadKey();
        }

        // ЗАДАНИЕ 2: Дан текст. Напечатать все имеющиеся в нем цифры.
        static void Task2()
        {
            Console.WriteLine("ЗАДАНИЕ 2: Вывод всех цифр из текста");
            Console.Write("Введите текст: ");
            string text = Console.ReadLine();
            
            bool hasDigits = false;
            Console.Write("Цифры в тексте: ");
            
            foreach (char c in text)
            {
                if (char.IsDigit(c))
                {
                    Console.Write(c + " ");
                    hasDigits = true;
                }
            }
            
            if (!hasDigits)
            {
                Console.WriteLine("цифры отсутствуют");
            }
            else
            {
                Console.WriteLine();
            }
            
            Console.WriteLine();
        }

        // ЗАДАНИЕ 3: Дан текст. Определить количество цифр в нем.
        static void Task3()
        {
            Console.WriteLine("ЗАДАНИЕ 3: Подсчет количества цифр в тексте");
            Console.Write("Введите текст: ");
            string text = Console.ReadLine();
            
            int digitCount = 0;
            
            foreach (char c in text)
            {
                if (char.IsDigit(c))
                {
                    digitCount++;
                }
            }
            
            if (digitCount > 0)
            {
                Console.WriteLine($"Количество цифр в тексте: {digitCount}");
            }
            else
            {
                Console.WriteLine("В тексте нет цифр");
            }
            
            Console.WriteLine();
        }

        // ЗАДАНИЕ 4: Дан текст, в котором имеются цифры.
        // а) Найти их сумму; б) Найти максимальную цифру.
        static void Task4()
        {
            Console.WriteLine("ЗАДАНИЕ 4: Сумма и максимальная цифра");
            Console.Write("Введите текст: ");
            string text = Console.ReadLine();
            
            int sum = 0;
            int maxDigit = -1;
            bool hasDigits = false;
            
            foreach (char c in text)
            {
                if (char.IsDigit(c))
                {
                    hasDigits = true;
                    int digit = c - '0';
                    sum += digit;
                    
                    if (digit > maxDigit)
                    {
                        maxDigit = digit;
                    }
                }
            }
            
            if (hasDigits)
            {
                Console.WriteLine($"а) Сумма цифр: {sum}");
                Console.WriteLine($"б) Максимальная цифра: {maxDigit}");
            }
            else
            {
                Console.WriteLine("В тексте нет цифр для обработки");
            }
            
            Console.WriteLine();
        }

        // ЗАДАНИЕ 5: Дан текст, в начале которого имеются пробелы, 
        // и в котором имеются цифры. Найти порядковый номер максимальной цифры,
        // начиная счет с первого символа, не являющегося пробелом.
        // Если максимальных цифр несколько, то должен быть найден номер первой из них.
        static void Task5()
        {
            Console.WriteLine("ЗАДАНИЕ 5: Позиция максимальной цифры (без учета начальных пробелов)");
            Console.Write("Введите текст: ");
            string text = Console.ReadLine();
            
            // Находим первый символ, не являющийся пробелом
            int firstNonSpaceIndex = -1;
            for (int i = 0; i < text.Length; i++)
            {
                if (text[i] != ' ')
                {
                    firstNonSpaceIndex = i;
                    break;
                }
            }
            
            // Если весь текст состоит из пробелов
            if (firstNonSpaceIndex == -1)
            {
                Console.WriteLine("Текст состоит только из пробелов");
                Console.WriteLine();
                return;
            }
            
            // Ищем максимальную цифру и её позицию
            int maxDigit = -1;
            int maxDigitPosition = -1;
            bool hasDigits = false;
            
            for (int i = firstNonSpaceIndex; i < text.Length; i++)
            {
                if (char.IsDigit(text[i]))
                {
                    hasDigits = true;
                    int digit = text[i] - '0';
                    
                    if (digit > maxDigit)
                    {
                        maxDigit = digit;
                        // Позиция считается с 1, начиная с первого не пробельного символа
                        maxDigitPosition = i - firstNonSpaceIndex + 1;
                    }
                }
            }
            
            if (hasDigits)
            {
                Console.WriteLine($"Максимальная цифра: {maxDigit}");
                Console.WriteLine($"Её порядковый номер (считая с первого не пробельного символа): {maxDigitPosition}");
            }
            else
            {
                Console.WriteLine("В тексте нет цифр");
            }
            
            Console.WriteLine();
        }
    }
}