Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2014, 18:16   #1
CROWN
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 12
По умолчанию В текстовом файле найти все слова, совпадающие с заданным пользователем и поменять их местами с соседними справа словами ( c# )

Всем привет кто может подсказать как сделать:

Найти слова А, поменять их местами с соседними справа словами. А – вводиться пользователем;

Из текстового файла.

Не знаю как осуществить перемену мест слов.
CROWN вне форума Ответить с цитированием
Старый 23.12.2014, 20:30   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Не знаю как осуществить перемену мест слов.
а что знаете?
сможете вывести те слова, которые совпали со словом A ?!

А ещё, как только используете понятие "слово", сразу вводите определение, что подразумевается под словом в данном случае.

например, вот в этом строчке:

assa$ms-tra bu-123 cost@mail,12+23

сколько слов?
И по каким правилам Вы их выделили?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.12.2014, 12:07   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Можно сперва загрузить содержимое файла методом File.ReadAllText в строку, а потом разделить всю строку на "слова" используя метод String.Split, сохранив и в массив. Далее уже в этом массиве в цикле искать нужное слово и обменять местами со следующим (по ходу итераций цикла) словом.
phomm вне форума Ответить с цитированием
Старый 24.12.2014, 12:56   #4
CROWN
Пользователь
 
Регистрация: 04.06.2014
Сообщений: 12
По умолчанию

Код:
static void Main(string[] args)
        {

            Console.WriteLine("Введите слово для поиска: ");
            string s = Console.ReadLine();

            StreamReader f = new StreamReader(@"d:\kit.txt");
            string str  = f.ReadLine();
            StreamWriter w = new StreamWriter(@"d:\zero.txt");

            string[] splitted = str.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);

            for (int b = 0; b <= splitted.Length; b++)
            {

                int i = 0;
                foreach (string a in splitted)
                {
                    if (a.Contains(s))
                    {
                        splitted[i] = splitted[i + 1];
                        splitted[i + 1] = splitted[i];
                    }
                }
            }
            f.Close();
            File.WriteAllLines(@"d:\zak.txt", splitted);
            Console.WriteLine("ready");
            Console.ReadKey();
           
        }
В этом коде слова меняются неправильно, как можно изменить?
CROWN вне форума Ответить с цитированием
Старый 24.12.2014, 15:57   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

такой вариант решения устроит?

Код:
        static void Main(string[] args)
        {

            Console.WriteLine("Введите слово для поиска: ");
            string sWordForFind = Console.ReadLine();

            StreamReader f = new StreamReader(@"d:\kit.txt");
            string sInput = f.ReadLine();
            f.Close();
            string[] splitted = sInput.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);

            int i = 0;
            while (i < splitted.Length-1)	
            {
                if (sWordForFind.CompareTo(splitted[i]) == 0)
                {
                    string sTemp = splitted[i];
                    splitted[i] = splitted[i+1];
                    splitted[i + 1] = sTemp;
                    i++;
                }
                i++;
            }
            File.WriteAllText(@"d:\zak.txt", string.Join(" ", splitted));
            Console.WriteLine("ready");
            Console.ReadKey();

        }
    }
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В текстовом файле поменять все слова, содержащие цепочку "ола", на цепочку "оло". Алькер Паскаль, Turbo Pascal, PascalABC.NET 5 13.05.2014 09:13
Дана последовательность слов, между соседними словами запятая, за последним словом точка. Напечатать в алфавитном порядке все глас zirko_o Паскаль, Turbo Pascal, PascalABC.NET 11 23.03.2014 18:33
Найти слова, содержащие соответственно наибольшее и наименьшее количество заглавных латинских букв, и поменять их местами smilegirl73 Паскаль, Turbo Pascal, PascalABC.NET 0 19.05.2013 12:33
как поменять местами слова в файле? r-tem Общие вопросы C/C++ 6 01.12.2008 22:17
Как поменять строки в текстовом файле местами _ares_ Помощь студентам 8 13.11.2007 02:14