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

2) Составить программу находящую количество букв "с" в тексте.

3) Составить программу определяющую, какая из букв "е" или "о" встречается в тексте чаще.

Ответы

Ответ дал: Aillianna
0
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;
    }
}


Ответ дал: Аноним
0
Все равно длиннее, даже если уполовинить. А на оформление я не смотрел и не считал пустые строки ))) C# - он не для новичков в программировании. И не для решения подобных задачек.
Ответ дал: Aillianna
0
потому я и говорила что сомневаюсь что автору нужен шарп
Ответ дал: Аноним
0
- так какой язык программирования то?
- английский язык.
Ответ дал: Аноним
0
Этим диалогом все сказано.
Ответ дал: Aillianna
0
ну телепаты в отпуске, а мы сделали что просили
Похожие вопросы