Найти слова в txt встречающиеся в каждом предложении или сообщить, что таких слов нет - C#

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

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

Дан файл, содержащий текст на русском языке. Найти слова, встречающиеся в каждом предложении, или сообщить, что таких слов нет. (В консоле) вот то что написал но оно не работает, ну точнее работает но неправильно :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace ConsoleApplication2
{
    class Program
    {
        private static StreamReader reader;
        static void Main(string[] args)
        {
            reader = new StreamReader(@"c:\test.txt");
            string slova = reader.ReadToEnd();
            Console.WriteLine(" " + slova);
            Console.WriteLine("!!!!Нажми что-то чтоб это попыталось заработать!!!!");
            Console.ReadLine();
            List<string> list = new List<string>();
            //Console.WriteLine("Повторяющиеся слова:");
            for (int i = 0; i < slova.Length; i++)
            {
                for (int j = 0; j < slova.Length; j++)
                {
                    if (i != j)
                    {
                        if (slova[i] == slova[j] && !list.Contains(slova[i]))
                            list.Add(slova[i]);
                    }
                }
            }
 
            foreach (string slovo in list.ToArray())
                Console.Write(slovo);
            Console.ReadKey();
        }
    }
}

Решение задачи: «Найти слова в txt встречающиеся в каждом предложении или сообщить, что таких слов нет»

textual
Листинг программы
class Program
{
    static void Main(string[] args)
    {
        string[][] words;
        StreamReader reader = new StreamReader(@"c:\test.txt", Encoding.Default);
        string text = reader.ReadToEnd();
        Console.WriteLine(text);
        string[] lines = text.Split(new char[] {'.'}, StringSplitOptions.RemoveEmptyEntries);
        words=new string[lines.Length][];
        List<string> list = new List<string>();
        for (int i=0; i<lines.Length; i++)
            words[i] = lines[i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
        Console.WriteLine("Повторяющиеся слова:");
        for (int i = 0; i < words[0].Length; i++)
        {
            bool inAllLines = true;
            for (int j = 1; j < words.Length; j++)
            {
                if (!words[j].Contains(words[0][i]))
                {
                    inAllLines = false;
                    break;
                }
            }
            if (inAllLines)
                list.Add(words[0][i]);
        }
        foreach (string word in list)
            Console.WriteLine(word);
        if (list.Count==0)
            Console.WriteLine("Нема!");
        Console.ReadLine();
    }
}

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


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

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

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