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

0 голосов
113 просмотров

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

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

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


Информатика (241 баллов) | 113 просмотров
0

точно?

0

да

0

ок

0

регулярные выражени использовать можно?

0

можно

0

понятно.

0

вообщето сомневаюсь что автору нужен шарп, но я решаю)

Дан 1 ответ
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;
    }
}


(55.0k баллов)
0

половина с регулярными выражениями, половина без.

0

оформление просто место занимает. плюс там же в двойном размере с регекспами и без

0

потому я и говорила что сомневаюсь что автору нужен шарп

0

ну телепаты в отпуске, а мы сделали что просили