Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
jesper
0 / 0 / 0
Регистрация: 24.04.2015
Сообщений: 16
#1

Каждая буква входит в слово не менее двух раз - C++

18.03.2016, 11:34. Просмотров 215. Ответов 1
Метки нет (Все метки)

Используя класс string, решить задание:
Дана строка. Между соседними словами - не менее одного пробела, за последним словом – точка. Найти и сохранить в строке те слова последовательности, которые удовлетворяют следующему свойству: каждая буква входит в слово не менее двух раз. Все остальные слова удалить.

У меня есть решение этой задачи с использованием char:
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
#include <conio.h>
#include <iostream>
#include <string>
 
using namespace std;
 
int main() 
{
    setlocale(LC_ALL,"Russian");
 
    const int N = 6;
    char str[N][30];
 
    cout << ("Введите строку латинскими буквами, состоящую из 6 слов: ");
 
    cout << endl;
 
    for (int i = 0; i < N; ++i)
    cin >> str[i];
 
    cout << endl;
 
    for (int i = 0; i < N; ++i)
    {
        int n = 1;
        int size = strlen(str[i]);
        for (int j = 0; j < size; ++j)
        {
            for (int k = j + 1; k < size; ++k)
            {
                if ( str[i][j] == str[i][k]) ++n;
                if (n == 2)
                {
                    cout << str[i] << endl;
                    break;
                }
            }
            if (n == 2) break;
        }
    }
 
    _getch();
    return 0;
}
Помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.03.2016, 11:34     Каждая буква входит в слово не менее двух раз
Посмотрите здесь:

Посчитать, сколько раз встречается каждая буква в двух текстах C++
C++ Вывести группы букв строки, в которых буква А встречается не менее двух раз
C++ Входит ли буква в заданною строку не более двух раз
Каждая буква входит в слово не менее двух раз (на си) C++
Найти все слова, в которые заданный символ входит не менее двух раз C++
C++ Найти и вывести на печать слова, у которых первая буква входит в слово ещё раз
C++ Строковые переменные: Найти все слова, в которых буква ''а'' входит не менее двух раз
Посчитать сколько раз встречается каждая буква в тексте C++
Определить, имеются ли в последовательности слова, в которых каждая буква слова входит в него не менее двух раз C++
C++ Найти слова, у которых первая буква входит в слово ещё раз
(Только простой вариант)Дано слово и буква.Сколько раз эта буква встречается в слове C++
C++. Выводить на экран слово, если каждая его буква входит в него не менее двух раз C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
meJevin
154 / 146 / 57
Регистрация: 18.11.2015
Сообщений: 629
Завершенные тесты: 1
18.03.2016, 16:01     Каждая буква входит в слово не менее двух раз #2
Решение неправильное, там если хотя бы одна буква входит более двух раз в слово.
А вот само решение со стрингами:
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
#include <conio.h>
#include <iostream>
#include <string>
#include <windows.h>
 
bool checkWord(std::string word) {
    int counter, rightCounter = 0;
    for (int i = 0; i < word.size(); i++) {
        char check = word[i];
        counter = 0;
        for (int j = 0; j < word.size(); j++) {
            if (check == word[j])
                counter++;
        }
        if (counter >= 2)
            rightCounter++;
    }
    return (rightCounter == word.size()) ? true : false;
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    const int N = 6;
    std::string str[N];
 
    std::cout << ("Введите строку, состоящую из 6 слов: ");
 
    std::cout << std::endl;
 
    for (int i = 0; i < N; i++)
        std::cin >> str[i];
 
    std::cout << "\nОтвет:\n";
    for (int i = 0; i < N; i++) {
        if (checkWord(str[i]))
            std::cout << str[i] << std::endl;
    }
    
 
    _getch();
    return 0;
}
Yandex
Объявления
18.03.2016, 16:01     Каждая буква входит в слово не менее двух раз
Ответ Создать тему
Опции темы

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