Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 22

Исправить поиск слова С++

07.08.2016, 10:11. Показов 1350. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Никак не могу понять, каким образом начать движение слова по строке. Еще не пойму, как перевести чаровую длину, в интовое значение.
Задание: Найти, сколько раз в строке встречается введенное слово.
Поправьте пожалуйста код.
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
#include "iostream"
#include "string"
 
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "rus");
    int b, n1, n;
    char a;
    n1 = 0;
    n = 0;
    a = ' ';
    string s, d;
    cout << "введите слово: ";
    getline(cin, s);
    cout << "введите строку: ";
    getline(cin, d);
    for (int i = 0; i < d.length() - s.length(); i++)
    {
        if (d.substr(i, s.length) == s)
            n++;
    }
    cout << n << endl;
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2016, 10:11
Ответы с готовыми решениями:

Исправить код. Поиск наибольшего слова в строке
Ребят, помогите разобраться в этом го*нокоде. В частности функция Search. Программа должна считывать текст из файла в строку, искать...

Исправить 3адачу: дана строка длиной n символов, Вывести все слова, отличные от последнего слова, предварительно удалив из слов нечетной длины его сре
дана строка, между словами не менее одного пробела, в конце точка. Вывести все слова, отличные от последнего слова, предварительно удалив...

Как осуществить в строковом массиве поиск именно слова, а не части слова?
как осуществить в строковом массиве поиск именно слова(!), а не части слова. Допустим, есть строка: &quot;this is horosho&quot; Если я...

11
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.08.2016, 10:16
Используй find() для поиска.
0
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 22
07.08.2016, 10:25  [ТС]
nmcf, Я еще не знаком с этой функцией. Наверняка есть вариант проще (примитивнее).
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.08.2016, 10:28
А с substr(), значит, знаком? Ну так прочитай документацию по string.
0
 Аватар для SmittWesson
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
07.08.2016, 10:45
У Вас char a не строка, а одно байтовое число. Делаем приведение типов. (int)a.
0
0 / 0 / 2
Регистрация: 07.08.2016
Сообщений: 2
07.08.2016, 11:24
Лучший ответ Сообщение было отмечено _Fake_ как решение

Решение

Я б так сделал!

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>
#include <string>
 
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "rus");
    int b, n1, n;
    char a;
    n1 = 0;
    n = 0;
    a = ' ';
    string s, d;
    cout << "введите слово: ";
    getline(cin, s);
    cout << "введите строку: ";
    getline(cin, d);
 
    if(s.size() < d.size()){
       for (int i = 0; i <= d.size() - s.size(); i++){
        if (d.substr(i, s.size()) == s)
            n++;
        }
    }
    
 
    cout << n << endl;
    //system("pause");
    return 0;
}
0
 Аватар для SmittWesson
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
07.08.2016, 11:30
Вот честно. Грузить и компилить Ваш, с позволения сказать код, мне лениво. Знаете, сколько у меня таких "гавриков"? Конкретику проблемы в студию. Иначе - ретируюсь.
0
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 22
08.08.2016, 17:29  [ТС]
Поправил программу своими силами.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
08.08.2016, 17:32
Цитата Сообщение от _Fake_ Посмотреть сообщение
Код поправил самостоятельно.
А тестировали? Оно же не стабильно
0
0 / 0 / 0
Регистрация: 26.11.2015
Сообщений: 22
08.08.2016, 17:34  [ТС]
HelicopterK52, Вы чего так быстро реагируете?) Я отписал чисто тему закрыть, код случайно выпал))
А касательно теста... Эта программа была нужна только для усвоения принципов работы со строками. Написал и удалил.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
08.08.2016, 17:46
Цитата Сообщение от _Fake_ Посмотреть сообщение
Эта программа была нужна только для усвоения принципов работы со строками.
Ну так раз Вы не учли другие варианты, значит еще не усвоили принципы
Нужно продолжать усваивать.
0
88 / 84 / 31
Регистрация: 18.11.2013
Сообщений: 390
08.08.2016, 18:19
Цитата Сообщение от Karaul Посмотреть сообщение
C++
1
2
if (d.substr(i, s.size()) == s)
n++;
C++
1
n += (d.substr(i, s.size()) == s)
Добавлено через 7 минут
программа ужасная, работает за n^2, хотя можно за n
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
using namespace std;
 
int main() {
    string a,b;
    cin >> a >> b;
    int pos = -1;
    int ans=-1;
    do
    {
        ans++;
        pos++;
        pos = a.find(b,pos);
    }while(pos!=string::npos);
    cout << ans;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.08.2016, 18:19
Помогаю со студенческими работами здесь

Поиск нужного слова в словаре, в котором слова расположены в лексикографическом порядке
Напишите задачу поиска нужного слова в словаре, в котором слова расположены в лексикографическом порядке(бинарный поиск). решить надо...

Поиск слова в файле и запись предложени после этого слова
Допустим есть файл, в нем несколько предложений, &quot;Шла саша по шоссе и сосала сушку.&quot; на нужно вставить предлог...

Поиск в столбце слова и вставка соответствующего слова в соседнюю ячейку
Здравствуйте! Помогите, пожалуйста! Если в перечне состояний (столбец 20 - выделен оранжевым цветом) встречается слово...

Поиск в ячейке слова и вставка соответствующего слова в соседнюю ячейку
Привет всем В общем пример: В экселе есть строка &quot;2423-423423342 Proliant DL380R03&quot; и рядом в ячейке выпадающий список вендоров....

Поиск слова в тексте и присвоение переменной этого слова
Здравствуйте. Помогите пожалуйста решить проблему. Есть файл index.html в нем есть слово, допустим &quot;Армагедон&quot;. Нужно найти это...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru