Загрузка данных
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();
}
}
}