0 / 0 / 0
Регистрация: 30.10.2017
Сообщений: 17
1

Функция,которая создаёт новую строку,в которой удалены все слова минимальной длины

20.12.2017, 19:32. Показов 1096. Ответов 1

Здравствуйте.
Помогите пожалуйста. на C++
Написать функцию,которая создаёт новую строку,в которой удалены все слова минимальной длины
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2017, 19:32
Ответы с готовыми решениями:

В файле заменить все слова максимальной длины на слова минимальной длины
Нужно в считанном из файла тексте заменить все слова максимальной длины на слова минимальной длины,...

Функция, которая сформировывает строку, в которой слова идут по алфавиту
Здравствуйте. Помогите пожалуйста. на C++ Написать функцию, которая сформировывает строку, в...

Разработать программу, которая вводит строку и находит все слова указанной длины n (n вводится)
Разработать программу, которая вводит строку и находит все слова указанной длины n (n вводится)

Строки. Поиск слова минимальной длины, вывод этой длины, номер слова и само слово
Как организовать решение такой задачи? Может как-то через создание массивов, в ячейках которых...

1
837 / 640 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
21.12.2017, 18:11 2
Лучший ответ Сообщение было отмечено Line_K как решение

Решение

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
#include <iostream>
#include <string>
#include <cctype>
#define is_delim(c) (std::isspace((c)) || std::ispunct((c)))
std::string::size_type min_word(const std::string& s);
std::string& remove_min_words(std::string& d, const std::string& s);
 
int main(void){
    std::string s = "APL, ADA, PERL (PHP) LISP, CPP";
    
    std::string d;
    remove_min_words(d, s);
    std::cout << d << std::endl;
    std::cin.get();
    return 0;
}
 
//удаление минимальных слов
std::string& remove_min_words(std::string& d, const std::string& s){
    std::string::size_type i, j, n, m = min_word(s);
    d = "";
    n = s.length();
    for(i = 0; i < n; ){
        if(!is_delim(s[i])){
            j = i + 1;
            while((j < n) && !is_delim(s[j]))
                ++j;
 
            if((j - i) != m)
                d.append(s.begin() + i, s.begin() + j);
            i = j;
        } else
            d += s[i++];
    }
    return d;
}
 
//минимальное слово
std::string::size_type min_word(const std::string& s){
    std::string::size_type j = 0, m = 0, i = 0, n = s.length();
    do {
        if((i < n) && !is_delim(s[i]))
            ++j;
        else if(j > 0){
            if(!m || (j < m))
                m = j;
            j = 0;
        }
    } while(i++ < n);
    return m;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2017, 18:11
Помогаю со студенческими работами здесь

Си: Выдать слова текста и их длины, Сформировать новую строку по правилу
Задание: Задан некоторый текст, состоящий из слов. Словом считать последовательность символов,...

Дана строка. Создать новую строку, все буквы которой входят в первую строку только один раз
Дана строка. Создать новую строку, все буквы которого входят в первую строку только один раз....

Дана строка, в которой слова разделены одним пробелом. Найдите и выведите все слова указанной длины
В итоге вышло, что если первое слово правильной длинны - выводит все слова в строке. Если нет -...

Из Pascal в C++ (Сформировать новую строку, в которой слова будут следовать в обратном порядке)
Сформировать новую строку, в которой слова будут следовать в обратном порядке. Найти первое...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru