Вопрос задан 12.07.2023 в 12:41. Предмет Информатика. Спрашивает Апасова Елизавета.

Дан символ C — прописная (заглавная) русская буква и текстовый файл. Создать строковый файл и

записать в него все слова из исходного файла, начинающиеся на эту букву (прописную или строчную). Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки. Если исходный файл не содержит подходящих слов, то оставить результирующий файл пустым. Помогите пожалуйста решить программу ( си шарп)
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кокорев Денис.

Ответ:

Примечание: файл "file.txt" должен существовать в корневой папке программы. Если что-то не работает / работает не так, напишите об этом.

using System;

using System.IO;

namespace ConsoleApp1

{

   class Program

   {

       static void Main(string[] args)

       {

           const int c = 'С';

           string text;

           using (FileStream file = new FileStream($"file.txt", FileMode.Open))

           {

               using (StreamReader reader = new StreamReader(file, System.Text.Encoding.Default))

               {

                   text = reader.ReadToEnd();

               }

           }

           string pattern = @"\w+";

           System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(pattern);

           System.Text.RegularExpressions.MatchCollection mc = reg.Matches(text);

           using (FileStream file2 = new FileStream($"file2.txt", FileMode.OpenOrCreate))

           {

               using (StreamWriter writer = new StreamWriter(file2, System.Text.Encoding.UTF8))

               {

                   foreach (var el in mc)

                       if ((el.ToString()[0] == c) || (el.ToString())[0] == Char.ToLower((char)c))

                           writer.WriteLine(el);

               }

           }

       }

   }

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот пример программы на C# для выполнения данной задачи:

csharp
using System; using System.IO; using System.Text.RegularExpressions; class Program { static void Main(string[] args) { // Символ, который мы ищем char targetChar = 'C'; // Замените на нужный символ // Путь к исходному текстовому файлу string sourceFilePath = "path_to_source_file.txt"; // Замените на путь к вашему файлу // Путь к результирующему файлу string resultFilePath = "path_to_result_file.txt"; // Замените на путь к желаемому файлу try { using (StreamReader reader = new StreamReader(sourceFilePath)) using (StreamWriter writer = new StreamWriter(resultFilePath)) { string line; while ((line = reader.ReadLine()) != null) { // Разбиваем строку на слова string[] words = line.Split(new char[] { ' ', '.', ',', '!', '?', ':', ';', '-', '(', ')', '"', '\'', '\t' }, StringSplitOptions.RemoveEmptyEntries); foreach (string word in words) { // Проверяем, начинается ли слово на заданный символ (без учета регистра) if (word.Length > 0 && (char.ToLower(word[0]) == char.ToLower(targetChar))) { // Записываем слово в результирующий файл writer.WriteLine(word); } } } } Console.WriteLine("Завершено. Результат записан в файл."); } catch (Exception ex) { Console.WriteLine($"Произошла ошибка: {ex.Message}"); } } }

Обратите внимание, что в этом примере мы используем регулярное выражение для разделения строки на слова, учитывая различные знаки препинания и символы. Вы можете настроить этот код под свои потребности, заменив значения переменных targetChar, sourceFilePath и resultFilePath на соответствующие значения для вашей задачи.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос