1) составить программу удаляющую из данного текста все буквосочетания "ма" и выводящую получившийся текст и его длину. 2) составить программу находящую количество букв "с" в тексте. 3) составить программу определяющую, какая из букв "е" или "о" встречается в тексте чаще.

basik100grn basik100grn    3   20.09.2019 02:40    0

Ответы
andreydikenson1 andreydikenson1  08.10.2020 03:38
Using System;
using System.Text.RegularExpressions;
using static System.Console;

internal static class Program
{
    private static void Main()
    {
        try
        {
            WriteLine("Введите строку");
            var s = ReadLine();

            //1) Составить программу удаляющую из данного текста все буквосочетания "ма" и выводящую получившийся текст и его длину.
            var s1 = Task1(s, "ма");
            WriteLine($"Удалить буквосочетания \"ма\"\nТекст = {s1}\nДлина = {s1.Length}");
            s1 = Task1Regex(s, "ма");
            WriteLine($"Удалить буквосочетания \"ма\"\nТекст = {s1}\nДлина = {s1.Length}");

            //2) Составить программу находящую количество букв "с" в тексте.
            WriteLine($"Количество букв \"с\" в тексте = {Task2(s, "с")}");
            WriteLine($"Количество букв \"с\" в тексте = {Task2Regex(s, "с")}");

            //3) Составить программу определяющую, какая из букв "е" или "о" встречается в тексте чаще.
            WriteLine($"В тексте чаще встречается = {Task3(s, "е", "о")}");
            WriteLine($"В тексте чаще встречается = {Task3Regex(s, "е", "о")}");
            ReadLine();
        }
        catch(Exception e)
        {
            WriteLine(e);
            ReadLine();
        }
    }

    private static string Task1(string s, string frase)
    {
        s = s.Replace(frase, "");
        return s;
    }

    private static int Task2(string s, string frase)
    {
        var count = -1;
        var k = -1;
        do
        {
            count++;
            k = s.IndexOf(frase, k+1, StringComparison.Ordinal);
        } while (k >= 0);

        return count;
    }

    private static string Task3(string s, string frase1, string frase2)
    {
        var count1 = Task2(s, frase1);
        var count2 = Task2(s, frase2);

        if (count1 == count2)
            return "поравну";

        return count1 > count2 ? frase1 : frase2;
    }

    private static string Task1Regex(string s, string frase)
    {
        var ms = Regex.Replace(s, frase, "");
        return ms;
    }

    private static int Task2Regex(string s, string frase)
    {
        var m = Regex.Matches(s, frase);
        return m.Count;
    }

    private static string Task3Regex(string s, string frase1, string frase2)
    {
        var count1 = Task2Regex(s, frase1);
        var count2 = Task2Regex(s, frase2);

        if (count1 == count2)
            return "поравну";

        return count1 > count2 ? frase1 : frase2;
    }
}
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика