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

Сформировать строку, в которую попадут только те слова, где одинаковые буквы встречаются более 2 раз

26.05.2015, 19:37. Показов 989. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дан текст состоящий не менее чем из 5 слов,сформировать строку,в которую попадут только те слова где одинаковые буквы встречаются более 2 раз. сразу скажу,задача есть на форуме,есть решение,но проблема в том,что преподаватель не хочет принимать её с классами, нужен код без классов, заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2015, 19:37
Ответы с готовыми решениями:

Сформировать строку, в которую попадут только те слова, где одинаковые буквы встречаются более двух раз
Ребят помогите сро4но, 2 задачи не полу4аются, буду признателен если поможете!!! 1.Дан текст,...

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

Вывести только те слова сообщения, которые встречаются в нем более n раз
Нужно выполнить эту задчку используя только библиотеки string и iostream. Буду очень благодарен,...

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

6
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 32
01.06.2015, 22:47  [ТС] 2
ребят ну помогите( надо сделать к четвергу
0
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
01.06.2015, 23:28 3
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
#include <iostream>
#include <string>
 
bool have_double_symbols(const std::string& str) {
    for (size_t i = 0; i < str.length(); i++) {
        for (size_t j = 0; j < str.length(); j++) {
            if (str[i] == str[j]) {
                return true;
            }
        }
    }
    return false;
}
 
int main() {
    using namespace std;
    while (cin) {
        string word;
        cin >> word;
        if (have_double_symbols(word)) {
            cout << word << " ";
        }
    }
}
Добавлено через 7 минут
Или вот вариант в моём более любимом стиле
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
 
bool have_double_symbols(std::string str) {
    std::sort(str.begin(), str.end());
    return std::adjacent_find(str.begin(), str.end()) != str.end();
}
 
int main() {
    using namespace std;
    copy_if(istream_iterator<string>(cin), istream_iterator<string>(),
            ostream_iterator<string>(cout, " "), have_double_symbols);
}
0
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 32
04.06.2015, 14:18  [ТС] 4
классы нельзя использовать( ну я попробую первую,вроде то что нужно, спасибо))

Добавлено через 30 минут
препод требует функции модуля string такие как unsigned strlen(char* str) и другие( что делать
0
196 / 197 / 120
Регистрация: 27.05.2011
Сообщений: 545
04.06.2015, 17:17 5
Цитата Сообщение от HelenDark Посмотреть сообщение
классы нельзя использовать
Тогда вам в другой раздел.
На на С++ классы не использовать не получится, т.к. даже вот такая строчка уже активно использует классы и шаблоны.
C++
1
cout << "Hello, world!" << endl;
Цитата Сообщение от HelenDark Посмотреть сообщение
препод требует функции модуля string такие как unsigned strlen(char* str) и другие
Вам проеподу шашечки или ехать? Про операции над сишными строками можно прочитать здесь или тут.

Цитата Сообщение от HelenDark Посмотреть сообщение
что делать
Я бы посоветовал, учиться

Добавлено через 3 минуты
Если уж вам так прямо нужно на Си, то позаменяйте в первом варианте тип string на char*. Не забудьте в главной функции выделить память под строчку.
0
0 / 0 / 0
Регистрация: 14.04.2015
Сообщений: 32
05.06.2015, 00:20  [ТС] 6
спасибо, я учусь, просто много пропустила по болезни и многое теперь не понимаю.

Добавлено через 1 час 12 минут
первый вариант программы выдаёт ошибку
Ошибка 1 error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден c:\Users\Лена\documents\visual studio 2010\Projects\k\k\LINK
0
Заблокирован
05.06.2015, 08:35 7
mymedia, а если в тексте будут не только пробелы, но и запятые и точки? А если будет троеточие, у тебя будет это слово с одинаковыми буквами _)

Добавлено через 41 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
//init
    char init[] = "this is a text...";
 
    //result
    char* word = std::strtok(init, " :,.");
    while (word != nullptr){
        int size = std::strlen(word);
        for (int i = 0; i < size - 1; i++)
        if (std::find(word + i + 1, word + size, word[i]) != word + size)cout << word << endl;
        word = std::strtok(nullptr, " :,.");
    }
0
05.06.2015, 08:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2015, 08:35
Помогаю со студенческими работами здесь

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

Сформировать строку, в которую попадут только те слова, где одинаковые буквы встречаются более двух раз / C# для начинающих
Ребят, уже была тут такая тема, но все же, не заработало. Приложение под винформ...

Вывести только те слова, которые встречаются более n раз
Здравствуйте. вот код задания Console.Write(&quot;Введите строку: &quot;); string str =...

Вывести только те слова, которые встречаются более n раз
Дана строка, в которой содержится осмысленное текстовое сообщение. Слова сообщения разделяются...


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

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

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