Ввести две строки символов и заменить слова - C#

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

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

Задание для консольного приложения: Ввести две строки символов и заменить каждое слово, начинающееся с гласной буквы первой строки на слово, начинающееся с согласной буквы во второй строке. Вывести полученный результат.

Решение задачи: «Ввести две строки символов и заменить слова»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Text.RegularExpressions;
  4.  
  5. namespace ConsoleApplication10
  6. {
  7.     class Program
  8.     {
  9.         static string toReplace = "";
  10.         static int count = 0;
  11.         static void Main(string[] args)
  12.         {
  13.             //Console.WriteLine("Введите строку 1: ");//раскомментировать
  14.             //string first = Console.ReadLine();
  15.             //Console.WriteLine("Введите строку 2: ");
  16.             //string second = Console.ReadLine();
  17.             string wordBeforeReplace;
  18.             /*debug info*/
  19.             string first = "в этой строке изменить первую букву, если она гласная";
  20.             string second = "из этой строки взять первую согласную!";
  21.             /**/
  22.             string firstReplaced = first;
  23.             //сначала надо убрать знаки препинания и прочий мусор
  24.             Regex newReg = new Regex(@"[^0-9a-zа-я ]", RegexOptions.IgnoreCase);
  25.             MatchCollection matches = newReg.Matches(first);
  26.             foreach (Match mat in matches)
  27.             {
  28.                 first = first.Replace(mat.ToString(), "").ToLower();//сразу приводим к нижнему регистру
  29.                 second = second.Replace(mat.ToString(), "").ToLower();
  30.             }
  31.             //бъём в массив, разделитель слов теперь четко " "
  32.             string[] arFirst = first.Split(' ');
  33.             string[] arSecond = second.Split(' ');
  34.             //Во втором массиве надо найти первое слово, которое начинаетя с согласной
  35.             foreach (string s in arSecond)
  36.             {
  37.                 if (isntStartWithVowel(s, true))
  38.                 {
  39.                     if (count == 1)
  40.                         break;
  41.                 }
  42.             }
  43.             //заменяем
  44.             for (int i = 0; i < arFirst.Length; i++ )
  45.             {
  46.                 if (isntStartWithVowel(arFirst[i], false))
  47.                 {
  48.                     wordBeforeReplace = arFirst[i];
  49.                     arFirst[i] = toReplace + arFirst[i].Substring(1);
  50.                     firstReplaced = firstReplaced.Replace(wordBeforeReplace, arFirst[i]);
  51.                 }
  52.             }
  53.  
  54.             Console.WriteLine("Согласная: {0}", toReplace);
  55.             Console.WriteLine("Строка 1 после замены: {0}", firstReplaced);
  56.             Console.ReadKey();
  57.  
  58.         }
  59.         static bool isntStartWithVowel(string checkedAr, bool fromSecond)
  60.         {
  61.             //гласные русские и латинские
  62.             char[] letter = { 'a', 'e', 'i', 'o', 'u', 'а', 'е', 'ё', 'и', 'о', 'у', 'ы', 'э', 'ю', 'я' };
  63.             char[] lett = checkedAr.ToCharArray();
  64.  
  65.             if(letter.Contains(lett[0]))
  66.                 return true;
  67.  
  68.             if (fromSecond)
  69.             {
  70.                 toReplace = lett[0].ToString();
  71.                 count += 1;
  72.             }
  73.             return false;
  74.         }
  75.     }
  76. }

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


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

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

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы