Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
1

Пользователь вводит предложение и слово, а программа сообщает, есть ли такое слово в предложении или нет

01.05.2017, 21:00. Показов 5718. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто знает, как решить задачу на С++? Задача на строки. Пользователь вводит предложение и слово, а программа сообщает, есть ли такое слово в предложении или нет.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.05.2017, 21:00
Ответы с готовыми решениями:

Составить програму, определяющую есть ли в данном предложении слово "хорошо", если есть такое слово вывести на экран ура
составить програмуу определяющую есть ли в данном предложении слово "хорошо" если есть такое слово...

Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его
Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его...

Выяснить, есть ли такое слово в заданном предложении
помогите, пожалуйста с задачей Введите предложение. Группы символов между пробелами считать...

Программа-цензор. Пользователь вводит слово. Программа открывает файл text.txt, находит в нем заданное пользователем сло
Программа-цензор. Пользователь вводит слово. Программа открывает файл text.txt, находит в нем...

13
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
02.05.2017, 04:24 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
#include "stdafx.h"
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str, str1="", str2;
    int k = 0;
    getline(cin, str);
    cin >> str2;
    for (int i = 0; i < str.length() + 1; i++)
    {
        if (str[i] != ' ' && str[i] != '\0')
        {
            str1 = str1 + str[i];
        }
        else
        {
            if (str1 == str2)
            {
                k++;
            }
            str1 = "";
        }
    }
    if (k > 0)
    {
        cout << "da";
    }
    else
    {
        cout << "net";
    }
    system("pause");
    return 0;
}
1
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
04.05.2017, 22:08  [ТС] 3
GeFacle, А как сделать так, чтобы пользователь сам вводил предложение или слово, перед тем, как программа решит, есть такое слово в предложении или нет?
0
Software Developer
315 / 229 / 113
Регистрация: 03.05.2017
Сообщений: 1,330
04.05.2017, 22:21 4
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
bool find_str_in_str (char * buff, char * str, int n)
{
    for (int i = n, j = 0; i < n + strlen (str), j < strlen (str); i ++, j ++)
         if (buff [i] != str [j])
              return false;
    return true;
}
 
int main (int argc, char *argv [])
{
    char str1 [1024];
    char str2 [1024];
    
    cin >> str1;
    cin >> str2;
    
    bool state = false;
    for (int n = 0; n < strlen (str1) - strlen (str2); n ++)
         if (find_str_in_str (str1, str2, n))
              state = true;
    cout << (state == true ? "\nOK!" : "\nstr not found!");
    _getch ();
    return 0;
}
0
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
04.05.2017, 23:41 5
Bossx, а можно более понятным языком?
0
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
04.05.2017, 23:52  [ТС] 6
GeFacle, Пользователь должен вручную сначала ввести предложение, после этого, в следующей строке, пользователь вводит слово, а программа вычисляет, было ли такое слово в верхнем предложении или нет.
0
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
04.05.2017, 23:56 7
Bossx, так прога это и делает
0
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
04.05.2017, 23:59  [ТС] 8
GeFacle, Я так понимаю, оно должно выглядеть на подобии:
Введите предложение:
сегодня была хорошая погода.
Введите слово:
погода.
Слово погода есть в предложении.
Вот, как-то так или похоже на это.
0
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
05.05.2017, 00:03 9
Bossx, дак сам добавь cout с текстом елки палки) в чем проблема то)
0
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
05.05.2017, 00:06  [ТС] 10
GeFacle, В том, что мне нужно, чтобы программа сама вычисляла, есть такое слово в предложении или нет, а cout - просто будет выводить текст.
0
-11 / 1 / 0
Регистрация: 14.02.2017
Сообщений: 188
11.05.2017, 16:24  [ТС] 11
Есть у кого-то ещё варианты, как можно решить данную задачу?
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
11.05.2017, 16:39 12
Лучший ответ Сообщение было отмечено Bossx как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
 
int main()
{
    std::string str, key;
    std::getline(std::cin, str);
    std::cin >> key;
    std::istringstream ist(str);
    using input_it = std::istream_iterator<std::string>;
    std::cout << std::boolalpha << (std::find(input_it(ist), input_it(), key) != input_it());
}
1
5 / 5 / 2
Регистрация: 25.11.2016
Сообщений: 71
11.05.2017, 17:56 13
можно через классы
поиск подстроки в строке
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
65
66
67
68
69
70
71
72
73
74
75
76
77
#include<iostream>
using namespace std;
 
class MyString {
 
private:
    char *STR;
    int size;
public:
 
    MyString() { 
        size = 81;
        this->STR = new char[size];
    }
 
    MyString(const char *STR) { 
        int size = strlen(STR) + 1;
        this->STR = new char[size];
 
        strncpy(this->STR, STR, size); 
    }
 
    ~MyString() 
    {
        delete[] STR;
    }
 
    char getMyString(const char *STR) {
        return *STR;
    }
 
    void inputString() {
        cin.getline(STR, size);
    }
 
    void printString() {
        cout << STR << endl;
    }
    //метод для поиска в строке подстроки 
    bool hasSubstring(const char *substr) {
        if (strstr(this->STR, substr)) {
            return true;
        }
        else {
            return false;
        }
    }
    //аналог метода выше
    /*bool hasSubstring(const char *substr) {
        for (int i = 0; i <= (strlen(str) - strlen(substr)); i++) {
            int j = 0;
            for (; str[i + j] == substr[j]; j++)
                if (j - strlen(substr) == 0 || j - strlen(substr) == 1) return true;
        }
        return false;
    }*/
};
 
int main() {
    setlocale(LC_ALL, "Russian");
 
    MyString str1;
    cout << "Введите строку длинной 80 символов: ";
    str1.inputString();
    str1.printString();
 
    cout << "Введите подстроку для поиска: ";
    const int STRSIZE = 1000;
    char str[STRSIZE]{};
    cin.getline(str, STRSIZE);
    if (str1.hasSubstring(str)) {
        cout << "Совпадение найдено" << endl;
    }
    else {
        cout << "Совпадений нет" << endl;
    }
}
1
Software Developer
315 / 229 / 113
Регистрация: 03.05.2017
Сообщений: 1,330
11.05.2017, 20:07 14
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
#include <iostream>
#include <conio.h>
#include <windows.h>
 
using namespace std;
 
void printf_rus (char *in)
{
    char out [strlen (in)];
    CharToOem (in, out);
    printf (out);
}
 
int find_substr (char *s1, char *s2)
{
    char *p, *p2;
    for (register int t = 0; s1 [t]; t ++)
    {
         p = &s1 [t];
         p2 = s2;
         while (*p2 && *p2 == *p)
         {
              p ++;
              p2 ++;
         }
         if (!*p2)
              return t;
     }
     return -1;
}
 
int main (int argc, char *argv [])
{
    SetConsoleCP (866);
    
    printf_rus ("Введите предложение: ");
    char str1 [1024] = {""};
    gets (str1);
    
    printf_rus ("Введите слово: ");
    char str2 [256] = {""};
    gets (str2);
    
    char temp [256] = {""};
    strcpy (temp, str2);
    if (find_substr (str1, temp) != -1)
    {
         printf_rus ("Слово ");
         cout << str2;
         printf_rus (" есть в предложении.");
    }
    else
    {
         printf_rus ("Слова ");
         cout << str2;
         printf_rus (" нет в предложении.");
    }
    _getch ();
    return 0;
}
1
11.05.2017, 20:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2017, 20:07
Помогаю со студенческими работами здесь

Найти такое слово в первом предложении, которого нет ни в одном из остальных предложений
4)Найти такое слово в первом предложении, которого нет ни в одном из остальных предложений.

Пользователь вводит с клавиатуры слово длинной больше 7 символов. Программа выводит 4-7 символы этого слова на
Пользователь вводит с клавиатуры слово длинной больше 7 символов. Программа выводит 4-7 символы...

При выводе выдаёт иеролифы. задача заключается в том, чтобы пользователь вводит слово и нужно вывести первую букву, всё слово и последнюю букву. TASM
.model small .stack 200h .data sInput db 13,10, &quot;Vvedite ctroky...

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


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

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