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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
ghjas
2 / 2 / 0
Регистрация: 19.11.2009
Сообщений: 66
#1

Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово. - C++

20.10.2011, 08:06. Просмотров 1118. Ответов 2
Метки нет (Все метки)

Ввести предложения и ключевое слово. Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово.
без понятия с чего начинать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2011, 08:06     Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово.
Посмотрите здесь:
Определить, состоит ли заданное слово из четного количества букв C++
C++ Определить,сколько раз в предложении встречается заданное слово
Определить, сколько раз встречается заданное слово в предложении C++
C++ Определить в каком по счёту предложении впервые встретилось заданное слово
C++ Текстовые файлы. Определить, в каком по счету предложении впервые встретилось заданное слово
C++ Напечатать все слова, которые состоят из тех же букв что и последнее слово текста
Найти в тексте самое длинное слово, которое состоит из цифр C++
Напечатать все слова заданного предложения, состоящие из тех же букв, что и первое слово предложения C++
C++ Пользователь вводит предложение и слово, а программа сообщает, есть ли такое слово в предложении или нет
Проверить, можно ли из данных букв составить заданное слово S C++
Ключевое слово constexpr: как определить удалось ли вычислить возвращаемое значение на этапе компиляции? C++
Заменить заданное слово в тексте, находящемся в заданном файле, на другое слово. C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
20.10.2011, 12:06     Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово. #2
Цитата Сообщение от ghjas Посмотреть сообщение
Ввести предложения и ключевое слово. Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово.
без понятия с чего начинать
- Ниже реализация на Си
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
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <string.h>
#include <stdio.h>
 
//Åñëè ñèìâîë chr ñîäåðæèòñÿ â ñëîâå str
//ГІГ® âîçâðГ*ГІГЁГ¬ Г*ГҐГ*óëåâîå Г§Г*Г*Г·ГҐГ*ГЁГҐ
int isInKeyChars(char chr, char * str)
{
    int i, sLen = strlen(str);
    for(i = 0; i < sLen; i++)
    {
        if(chr == str[i])
            break;
    }
    return sLen - i;
}
 
int main()
{
    char str[1025];//Áóäåò ñîäåðæГ*ГІГј Гў Г±ГҐГЎГҐ ïðåäëîæåГ*ГЁГҐ
    char word[32];//Áóäåò ñîäåðæГ*ГІГј Гў Г±ГҐГЎГҐ êëþ÷åâîå ñëîâî
    char *tok;//ÓêГ*Г§Г*òåëü Г*Г* ГІГҐГЄГіГ№ГҐГҐ ñëîâî Гў ïðåäëîæåГ*ГЁГЁ
    char delim[] = " .,;!&";//ГђГ*çäåëèòåëè ìåæäó ñëîâГ*ìè
    char chr;//ÑèìâîëüГ*Г*Гї ïåðåìåГ*Г*Г*Гї, äëÿ îðãГ*Г*ГЁГ§Г*öèè ïîâòîðГ*îãî ââîäГ* ГЁ ГІ.Г¤. 
    long i,k,nCount;//nCount - áóäåò ñîäåðæГ*ГІГј Гў Г±ГҐГЎГҐ ÷èñëî ñëîâ 
    //êîòîðûå ñîñòîÿò ГЁГ§ ñèìâîëîâ word
    do
    {
        printf("Enter sentence :\n");
        scanf("%[^\n]%c",str,&chr);
        printf("Enter key word : \n");
        scanf("%s",word);
        tok = strtok(str,delim);//Âûäåëÿåì ГЁГ§ ñòðîêè 1-ГҐ ñëîâî
        nCount = 0;//ГЋГЎГ*óëÿåì Г±Г·ВёГІГ·ГЁГЄ ñëîâ ïîëГ*îñòüþ ñîñòîÿùèõ 
        //ГЁГ§ ñèìâîëîâ word
        printf("List of words that contains only chars of key word\n");
        while(tok)
        {
            i = 0;k = 1;
            while(*(tok + i) != '\0')
            {
                //*(tok + i) - ïåðâûé ñèìâîë ñòðîêè tok + i
                k *= isInKeyChars(*(tok + i),word);
                i++;
            }
            //Åñëè tok ñîñòîÿëî Г*ГҐ òîëüêî ГЁГ§ ñèìâîëîâ word
            //ГІГ® Г*Г* ГЄГ*êîì ГІГ® ñèìâîëå isInKeyChars ГўГҐГ°Г*ВёГІ 0
            //ГҐГ±ГІГҐГ±ГўГҐГ*Г*Г® k Г±ГІГ*Г*ГҐГІ Г°Г*ГўГ*ûì 0 - ГЅГІГ® ГЁ áóäåò ГЁГ*äèêГ*òîðîì
            //ñîñòîèò ëè ñëîâî tok ГЁГ§ ñèìâîëîâ word èëè Г*ГҐГІ
            if(0 < k)
            {
                printf("%s\n",tok);
                nCount++;
            }
            //ÏðîäîëæГ*ГҐГ¬ âûäåëÿòü ГЁГ§ ñòðîêè ñëîâГ*
            tok = strtok(NULL,delim);
        }
        if(nCount == 0)
            printf("Words in sentence not consists only from chars key word\n");
        printf("Enter 1 for new input\n");
        scanf("%d",&i);
    }
    while(i == 1);
    return 0;
}
Миниатюры
Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово.  
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
20.10.2011, 12:26     Определить, в введенном предложении слово, которое состоит из тех же букв, что и заданное ключевое слово. #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
33
34
#include <string>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <sstream>
 
using namespace std;
 
bool check(const string& s1, const string& s2)
{
   string s1_ = s1, s2_ = s2;
   sort(s1_.begin(), s1_.end());
   sort(s2_.begin(), s2_.end());   
   s1_.erase(unique(s1_.begin(), s1_.end()), s1_.end());
   s2_.erase(unique(s2_.begin(), s2_.end()), s2_.end());
   return s1_ == s2_;
}
 
void irr(const string& kw, const string& sent)
{
   istringstream stream(sent);
   istream_iterator <string> begin(stream), end;
   for(;begin!=end;++begin)
   {
      if(check(kw, *begin))
         cout << *begin << endl;
   }
   
}
 
int main()
{
   irr("dog", "this is dog or god or godog");
}
Ответ Создать тему
Опции темы

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