Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2018, 17:27   #1
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию C++ строки

Приветствую. Необходимо выполнить задание "Даны предложения. Определить количество слов, совпадающих с данным."
Не подскажите, как выполнять поиск целого слова в строке? Что-то в голову никак не лезет идеи.
LOkeron вне форума Ответить с цитированием
Старый 05.12.2018, 17:34   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Как вы в предложении ищите слово, совпадающие с данным? Вот без программирования. Когда книгу или текст читаете?
p51x вне форума Ответить с цитированием
Старый 05.12.2018, 17:48   #3
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Как вы в предложении ищите слово, совпадающие с данным? Вот без программирования. Когда книгу или текст читаете?
Да-да, я понял, что вы намекаете на поиск по буквам, но реализация этого способа мне ну никак не приходит в голову, вот и прошу помощи
LOkeron вне форума Ответить с цитированием
Старый 05.12.2018, 17:59   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Нет, я прямо говорю: делайте как читаете, программирование не магия.
1. Определяете, что такое слово.
2. Определяете, чем они могу разделяться.
3. Идете по строке, ищите разделители, нашли, проверили, что слово собрали и вперед - если размеры не совпали вернуть ложь, пока не конец составленного слова и пока не конец введенного слова если буквы по индексу не равны, то вернуть ложь. если цикл прошел, то вернуть истину.
4. если истина из п.3, то вывести
p51x вне форума Ответить с цитированием
Старый 05.12.2018, 18:07   #5
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет, я прямо говорю: делайте как читаете, программирование не магия.
1. Определяете, что такое слово.
2. Определяете, чем они могу разделяться.
3. Идете по строке, ищите разделители, нашли, проверили, что слово собрали и вперед - если размеры не совпали вернуть ложь, пока не конец составленного слова и пока не конец введенного слова если буквы по индексу не равны, то вернуть ложь. если цикл прошел, то вернуть истину.
4. если истина из п.3, то вывести
Вы не могли бы указать на ошибку? Я написал код, но он выводит неправильное значение

#include <iostream>
#include <string>
using namespace std;

int main() {
{string x; getline(cin, x); // текст
int k=0;
for (int i = 0; i < 100; i++)
{
size_t pos = x.find("my");//slovo
if (!pos)
cout << "net slova ";
else
k++;
}
cout << k;
return 0;

}
}

Сам текст: "Meet my family. There are five of us – my parents, my elder brother, my baby sister and me. First, meet my mum and dad, Jane and Michael. My mum enjoys reading and my dad enjoys playing chess with my brother Ken."
LOkeron вне форума Ответить с цитированием
Старый 05.12.2018, 18:20   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

1. Если пошли в методы стринга, то цикл по i не нужен
2. Файнд в случае не нахождения вернет npos, который -1, а не 0 или ложь.
3. Файнд не делит на слова, т.е. nmy тоже пройдет.
p51x вне форума Ответить с цитированием
Старый 05.12.2018, 18:21   #7
LOkeron
Пользователь
 
Аватар для LOkeron
 
Регистрация: 18.11.2018
Сообщений: 26
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
1. Если пошли в методы стринга, то цикл по i не нужен
2. Файнд в случае не нахождения вернет npos, который -1, а не 0 или ложь.
3. Файнд не делит на слова, т.е. nmy тоже пройдет.
чем же заменить файнд?
LOkeron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти строки матрицы, для которых есть коллинеарные строки DowL_HH4 Общие вопросы C/C++ 1 27.04.2018 12:50
Выводить только измененные строки. Перед каждой строкой записывать номер строки в исходном тексте.используя строки и текст.файл nero4ka C++ Builder 1 13.06.2015 07:14
Задача на строки. Даны две строки. Определить можно ли из символов первой строки получить вторую строку.( написать подпрограммой и ANTON1994 Паскаль, Turbo Pascal, PascalABC.NET 5 09.02.2013 14:07
Программа на языке "Ассемблер" - ввод строки, анализ длины строки, добавление точки в конец строки Алексей_2012 Помощь студентам 1 05.04.2012 11:26
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10