Страница 1 из 1

поменять слова местами C#

Добавлено: 23 ноя 2009, 16:09
drumer91
здравствуйте, помогите пожалуйста написать программку или составить алгоритм, которая бы меняла два заданных слова в строке местами, при этом не использовать методы для работы над строками(кроме длины)...
Вот я думаю так:
1)сначала посчитать количество слов в строке и посчитать количество рядом стоящих пробелов во всей строке
2)потом создать массив строк, куда занести полученные последовательности пробелов и слова
3)ввести счётчик, который бы считал количество слов в массиве
4)затем поменять заданные слова местами
5)вывести на экран...
но у меня возникли проблемы с пунктом 1)

Re: поменять слова местами C#

Добавлено: 23 ноя 2009, 23:57
Decoder
Объясни, как именно указывать, какое слово с каким менять?
Предположим, имеется строка: "Понедельник Вторник Среда Четверг Пятница".
Я вижу как минимум три варианта:
1. Поменять "Понедельник" и "Пятница".
2. Поменять первое и последнее слово или первое и пятое.
3. Указывать смещение от начала строки и длину слова, напимер: (0, 11) и (34, 7).

Re: поменять слова местами C#

Добавлено: 24 ноя 2009, 21:17
drumer91
виноват, что сразу не написал
пользователь вводит номера слов, которые надо поменять

Re: поменять слова местами C#

Добавлено: 25 ноя 2009, 14:23
Decoder
По поводу первого пункта: тебе же WinMain любезно предоставил уже готовый алгоритм на C#.
3)ввести счётчик, который бы считал количество слов в массиве
Количество слов в массиве и количество слов в строке - это разве не одно и то же значение?
Ну и наконец...
4)затем поменять заданные слова местами
Существует готовый алгоритм, который переставляет мествми слова в строке без дополнительного выделения промежуточной памяти под отдельные слова.
Так что делать всё это нужно по-другому:
1. Количество слов в строке необходимо разве что для проверки корректности указываемого порядкового номера слова.
2. Тебе нужен метод, который будет определять местоположение заданного слова внутри строки (т.е. смещение от начала строки) и его длину.
3. Дальше используется алгоритм перестановки слов внутри строки.

Если будет что-то непонятно, пиши на decoder@hotbox.ru

Re: поменять слова местами C#

Добавлено: 25 ноя 2009, 15:39
drumer91
Decoder писал(а): Количество слов в массиве и количество слов в строке - это разве не одно и то же значение?
да, количество СЛОВ в строке= количеству СЛОВ в массиве, НО в массиве, кроме слов, находятся последовательности пробелов в соответствующих элементах массива
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
c 1) уже разобрался
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
всем спасибо