Посчитать количество слов в тексте, которые заканчиваются на гласную букву - C#

Узнай цену своей работы

Формулировка задачи:

С клавиатуры вводится строка. Составить программу, которая подсчитывает количество слов в тексте, которые заканчиваются на гласную букву; выводит на экран все слова, длина которых меньше пяти символов; удаляет все слова, которые содержат хотя бы одну латинскую букву.

Решение задачи: «Посчитать количество слов в тексте, которые заканчиваются на гласную букву»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
 
class Program
{
    static void Main(string[] args)
    {
        string text = Console.ReadLine();
        int endsWithVowel = 0;
        var shortWords = new List<string>();
        string alteredText = text;
        foreach (Match match in Regex.Matches(text, @"(\p{Lu}|\p{Ll})+"))
        {
            string word = match.Value;
            if (EndsWithVowel(word))
                endsWithVowel++;
            if (IsShort(word))
                shortWords.Add(word);
            if (NeedToRemove(word))
            {
                alteredText = Regex.Replace(alteredText, @"\b" + word + @"\b", "");
            }
        }
        Console.WriteLine("Слов, заканчивающихся на гласную: " + endsWithVowel);
        Console.WriteLine("Слова, которые короче пяти символов:");
        foreach (var word in shortWords)
            Console.WriteLine(word);
        Console.WriteLine("Текст после удаления слов, содержащих латинские буквы:");
        Console.WriteLine(alteredText);
        Console.ReadLine();
    }
 
    static string vowels = "aoueiаеёиоуыэюя";
    static bool IsVowel(char ch)
    {
        return vowels.IndexOf(ch) != -1;
    }
 
    static bool EndsWithVowel(string word)
    {
        return IsVowel(word[word.Length - 1]);
    }
 
    static int maxLength = 4;
    static bool IsShort(string word)
    {
        return word.Length <= maxLength;
    }
 
    static bool NeedToRemove(string word)
    {
        var match = Regex.Match(word, @"([a-z]|[A-Z])");
        return match.Success;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы