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

В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”

23.06.2013, 23:00. Показов 2334. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Помогите написать программу! В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”. Заранее огромное спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2013, 23:00
Ответы с готовыми решениями:

Дана строка из 25 слов. Вывести на экран все слова строки, содержащие ровно две буквы D
Дана строка из 25 слов. Вывести на экран все слова строки, содержащие ровно две буквы D. Заранее...

Строка: Вывести все слова строки, содержащие ровно две буквы d.
(язык программирования Си) ................................................. Здравствуйте!), ...

Напечатать все слова, содержащие ровно две маленькие латинские буквы
Здравствуйте, есть пример решения данной задачи: #include <stdio.h> #include <ctype.h> #define...

В строке найти слова содержащие ровно две буквы d
Дана строка, в которой слова разделены одним пробелом. Напечатать все слова , содержащие ровно две...

4
3 / 3 / 4
Регистрация: 23.06.2013
Сообщений: 10
23.06.2013, 23:20 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
#include <iostream>
#include <string>
#include <sstream> // для разбиения строки на слова
#include <algorithm> // для поиска вхождений буквы d
 
using namespace std;
 
int main()
{
    string str;
    cout << "Введите произвольное предложение:\n";
    getline(cin, str);
 
    stringstream ss(str); // отправляем строку в поток ss
                          // для дальнейшей обработки
    string word;
    while (ss >> word) // разделяем строку на слова
    {
        // проверяем количество вхождений буквы d в слове
        if ( count(word.begin(), word.end(), 'd') == 2 )
            cout << word << endl;
    }
 
    return 0;
}
0
39 / 39 / 24
Регистрация: 13.05.2010
Сообщений: 282
Записей в блоге: 1
27.06.2013, 23:57 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
25
26
27
28
29
30
31
32
#include <iostream>
 
int main()
{
    char buffer[] = "sdlkfj dd fdlgjfdg ddkjs fddslkd\0";
    char *word;
    int length, count;
   
    printf("%s\n\n", buffer);
    word = strtok(buffer, " ,.!");
 
    for(int i = 1; word != NULL; i++)
    {
        length = strlen(word),
        count = 0;
        
        for(int j = 0; j < length; j++)
        {
            if (word[j] == 'd')
                count ++;
        }
 
        if (count == 2)
            printf("%d. %s\n", i, word, strlen(word));
        
        word = strtok(NULL, " ,.!");
    }
 
    system("pause");
   
    return 0;
}
0
4299 / 1421 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
28.06.2013, 00:13 4
Попытался ограничиться лишь средствами string для поиска.
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
#include <iostream>
#include <string>
 
bool isDoubleD(const std::string word)
{
    size_t dCount = 0, prevDPos = 0;
    while ((word.find("d", prevDPos)) != std::string::npos)
    {
        prevDPos = word.find("d", prevDPos) + 1;
        ++dCount;
    }
    return dCount == 2;
}
 
void wordsWithDoubleD(const std::string str, const char* tokens = ", ?!;:.")
{
    size_t beginPos = 0, nextPos = 0;
    std::string word;
    if ((beginPos = str.find_first_of(tokens)) != 0)
    {
        word = str.substr(0, beginPos);
        if (isDoubleD(word))
            std::cout << word << '\n';
    }
    while((beginPos = str.find_first_of(tokens, nextPos)) != std::string::npos)
    {
        if ((nextPos = str.find_first_of(tokens, beginPos + 1)) == std::string::npos)
            nextPos = str.size();
        if ((nextPos - beginPos) > 1)
        {
            word = str.substr(beginPos + 1, nextPos - (beginPos + 1));
            if (isDoubleD(word))
                std::cout << word << '\n';
        }
    } 
}
int main()
{
    wordsWithDoubleD("dd KSC.sfa.sasg. d dfdfdf.das.dasd. ad.add.a.sdc.sc.m .sdcd ");
}
0
433 / 368 / 149
Регистрация: 06.08.2012
Сообщений: 961
28.06.2013, 00:18 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <algorithm>
#include <iostream>
#include <string>
#include <sstream>
 
int main()
{
    std::string str = "hello dude";
 
    std::stringstream ss(str);
    std::string s;
 
    for (; ss >> s;)
    {
        if (std::count(s.begin(), s.end(), 'd') == 2)
                std::cout << s << ' ';
    }
 
    system("PAUSE");
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2013, 00:18
Помогаю со студенческими работами здесь

Найдите все слова в предложении, содержащие по две буквы М, не стоящие рядом, и определите их количество
Найдите все слова в предложении, содержащие по две буквы М, не стоящие рядом, и определите их...

Напечатать все слова из предложения, содержащие ровно две буквы буквы "d"
Дано предложение, состоящее не менее чем из 5 слов.Напечатать все слова из предложения,...

Дано предложение, состоящее не менее чем из 5 слов. Напечатать все слова из предложения, содержащие ровно две буквы "d".
Помогите пожайлуста решить лабу: Дано предложение, состоящее не менее чем из 5 слов. ...

Используя следующий фрагмент программы,введите перечисленные ниже слова из списка С содержащие ровно две буквы d
Ребят помогите.нужно написать прогу на С++.Проблема со строками я вообще без понятия как...


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

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

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