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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Verk
0 / 0 / 0
Регистрация: 19.12.2012
Сообщений: 13
#1

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

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

Всем привет! Помогите написать программу! В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”. Заранее огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2013, 23:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d” (C++):

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

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

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

Вывести на экран слова, содержащие 3 буквы. - C++
Дана вот такая задачка на Си: Дана символьная строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие 3...

Вывести на экран слова, содержащие три буквы - C++
Дана строка, содержащая текст, заканчивающаяся точкой. Вывести на экран слова, содержащие три буквы. Задача на строки.

Вывести на экран слова, содержащие три буквы. - C++
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.

4
capy
3 / 3 / 0
Регистрация: 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
Khelleos
37 / 37 / 7
Регистрация: 13.05.2010
Сообщений: 283
Записей в блоге: 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
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 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
Issues
430 / 365 / 37
Регистрация: 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2013, 00:18
Привет! Вот еще темы с ответами:

Вывести на экран слова, содержащие три буквы - C++
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.

Вывести на экран слова из текста, содержащие три буквы - C++
Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы.

Найти в тексте слова, содержащие две одинаковые буквы, стоящие рядом - C++
Имеется строка текста (на любом языке) из нескольких слов, разделённых пробелами и/или знаками препинания. Требуется найти в тексте и...

Строки (вывести все слова, содержащие только латинские буквы) - C++
Здравствуйте, нужно вывести все слова, содержащие только латинские буквы. Задаётся последовательность, в которой слова разделены запятыми,...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
28.06.2013, 00:18
Ответ Создать тему
Опции темы

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