Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Ильдар5
-42 / 0 / 0
Регистрация: 14.03.2016
Сообщений: 67
1

Работа со словами в предложении

23.10.2017, 20:21. Просмотров 914. Ответов 2
Метки нет (Все метки)

Доброго времени суток
Помогите пожалуйста с задачей:

Дано предложение, состоящее из множества слов. Ввести слово, содержащееся в этом предложении. Вывести
a. Предложение, в котором введённое слово удалено
b. Слова в предложении упорядочены по возрастанию длины
c. Программа должна удалять слово независимо от регистра
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2017, 20:21
Ответы с готовыми решениями:

Удалить пробелы, стоящие между первым и вторым словами, а также между двумя последними словами
Задание: Удалить пробелы, стоящие между первым и вторым словами, а также между...

В предложении добавить между словами по одному пробелу
задание следующее: дано предложение. добавить между словами по одному пробелу....

В исходном предложении поставить между словами вместо пробела вставьте символ '*', вывести полученный текст и количество звездочек
Здравствуйте! Помогите с написанием кода. Задача: В исходном предложении...

Работа со словами
Есть массив строк произвольного размера . Найти самый частый символ в строке ....

Работа со словами в строке
Поменять местами первое и последнее слово в каждой строке.

2
AndrewBeletskiy
33 / 33 / 45
Регистрация: 26.10.2016
Сообщений: 83
Завершенные тесты: 2
24.10.2017, 11:22 2
Лучший ответ Сообщение было отмечено Ильдар5 как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Words
{
  class Program
  {
    // Находит индекс слова в массиве слов
    // Если слова нет в массиве возвращает -1
    static int FindWord(string word, string[] words) {
      int res =  -1;
      for (int i = 0; i < words.Length; i++) {
        if (words[i].ToLower().Equals(word.ToLower())) {
          return i;
        }
      }
      return res;
    }
    // Функция сортировки массива строк по возрастанию
    // (Если точнее, то по неубыванию)
    static void Sort(string[] words) {
      int N = words.Length; 
      // Сортировка пузырьком
      for (int i = 0; i < N; i++) {
        for (int j = 0; j < N-i-1; j++) {
          if (words[j].Length > words[j+1].Length) {
            string temp = words[j];
            words[j] = words[j+1];
            words[j+1] = temp;
          }
        }
      }
    }
    // Функция для удаления елемента из массива
    static string[] RemoveAt(string[] words, int index) {
      // Создаём новый масив на единицу меньший чем исходный
      string[] res = new string[words.Length-1];
      // Копируем в новый масив все элементы до удаляемого
      Array.Copy(words, 0, res, 0, index);
      // Если после удаляемого тоже есть элементы, копируем и их
      if (index < words.Length-1)
        Array.Copy(words, index+1, res, index, words.Length - index- 1);
      return res;
    }
    // Функция для вывода массива
    static void OutputWords(string[] words) {
      foreach(var word in words) {
        Console.Write("{0} ", word);
      }
      Console.WriteLine();
    }
    static void Main(string[] args)
    {
      // Вводим текст
      Console.Write("Enter your text: ");
      string text = Console.ReadLine();
      
      // Вводим слово
      Console.Write("Enter your word: ");
      string wordToRemove = Console.ReadLine();
      
      // Находим все слова
      // Метод Split(char)
      // возвращает массив из строк разделённых символом, в данном случае
      // пробелом
      string[] words = text.Split(' ');
      // Находим индекс слова, которое необходимо удалить
      int indexToRemove = FindWord(wordToRemove, words);
      
      // Если слова нет, то индекс < 0
      // Выводим сообщение о том, что слова нет и завершаем программу
      if (indexToRemove < 0) {
        Console.WriteLine("There is no such word in the text");
        return;
      }
      
      // Заменяем текущий массив слов на массив из которого 
      // удалено искомое слово.
      words = RemoveAt(words, indexToRemove);
      
      // Выводим все слова через пробел, тем самым выводя весь текст без
      // слова, которое было удалено
      OutputWords(words);
      
      // Сортируем масив слов по возрастанию длины слова
      Sort(words);
      
      // Выводим результат
      OutputWords(words);
    }
  }
}
1
Ильдар5
-42 / 0 / 0
Регистрация: 14.03.2016
Сообщений: 67
29.10.2017, 17:26  [ТС] 3
Спасибо, огромное!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2017, 17:26

Работа со словами в стеке
Доброго времени суток! Из двух стеков, хранящих слова, создать новый стек со...

Работа с текстом и словами
Есть ли статейка как работать с текстами, словами. например если мне дают...

Работа со словами в форме списков
Определить с помощью упоминаемого в тексте теоретического раздела (п.5.3)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru