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

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

Ответ:
Примечание: файл "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);
}
}
}
}
}



Конечно, вот пример программы на C# для выполнения данной задачи:
csharpusing 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
на соответствующие значения для вашей задачи.


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








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili