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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 56, средняя оценка - 4.71
vechestva
-28 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 47
#1

C++ поиск слова в строке, игнорируя остальные - C++

14.09.2012, 18:46. Просмотров 8133. Ответов 7
Метки нет (Все метки)

Поиск слова в строке, игнорируя остальные

дано:

C++
1
2
3
4
string text = "Hello myw.o.r.,ld!";
string word = "world";
 
// алгоритмы(STL)  поиска
нужно найти слово world в строке "Hello myw.o.r.,ld!"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2012, 18:46     C++ поиск слова в строке, игнорируя остальные
Посмотрите здесь:
поиск слова в строке C++
Поиск слова в строке C++
C++ Поиск слова в строке
поиск слова в строке C++
Поиск слова в строке C++
C++ Поиск слова в строке
C++ поиск слова в строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.09.2012, 18:51     C++ поиск слова в строке, игнорируя остальные #2
эээ, не понял.
в строке
"ld,.xyzrow" тоже пристутствует слово world? или из-за рандомного порядка это не считается?
vechestva
-28 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 47
14.09.2012, 19:05  [ТС]     C++ поиск слова в строке, игнорируя остальные #3
Цитата Сообщение от DU Посмотреть сообщение
эээ, не понял.
в строке
"ld,.xyzrow" тоже пристутствует слово world? или из-за рандомного порядка это не считается?
последовательно
zitxbit
Master C/C++
87 / 739 / 75
Регистрация: 11.04.2012
Сообщений: 971
14.09.2012, 19:27     C++ поиск слова в строке, игнорируя остальные #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
30
31
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
char* findword(char* str1, char* str2)
{
    for (int i = 0; str1[i] != '\0'; i++)
        if (isspace(str1[i]))
        {
            char word[256] = "\0", pchars[256] = ".,!";
            for (int n = i+1, k = 0; !isspace(str1[n]) && str1[n] != '\0'; n++)
                if (!strchr(pchars,str1[n])) word[k++] = str1[n];
 
            char* buf = NULL;
            if ((buf = strstr(word, str2)) != NULL) 
                return buf;
 
        }
    return NULL;
}
 
int main()
{
    static char str1[256] = "Hello myw.o.r.,ld!", str2[256] = "world";
    printf("%s\n%s\n",str1,findword(str1,str2));
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/479d76...5defe1cd0d1173
Миниатюры
C++ поиск слова в строке, игнорируя остальные  
vechestva
-28 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 47
14.09.2012, 19:55  [ТС]     C++ поиск слова в строке, игнорируя остальные #5
у C++ есть STL, решите пожалуйста с помощью него

Добавлено через 25 минут
если переходить на простой перебор, то можно решить так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool FindWordInString(string str, string word)
{
   wordsFound = 0;
   for(string::iterator it = str.begin(); it != str.end(); ++it)
   {
        if(wordsFound >= word.size())
            return true;
 
        if(*it == word[wordsFound])
            ++wordsFound;
   }
 
    return false;
}
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
14.09.2012, 20:25     C++ поиск слова в строке, игнорируя остальные #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
#include <functional>
#include <iterator>
 
int main()
{
    std::string s = "Hello myw.o.r.,ld!", word = "world", s1;
    std::remove_copy_if(s.begin(), s.end(), std::back_inserter(s1), std::not1(std::ptr_fun(isalpha)));
    std::cout << "s1: " << s1 << "\n\n";
    std::cout << std::boolalpha <<
        (std::search(s1.begin(), s1.end(), word.begin(), word.end()) != s1.end());
    return 0;
}
Игорь с++
434 / 457 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
14.09.2012, 20:33     C++ поиск слова в строке, игнорируя остальные #7
Цитата Сообщение от vechestva Посмотреть сообщение
у C++ есть STL, решите пожалуйста с помощью него
Пардон , а что то не понял вы в разделе фрилансоров?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2012, 20:36     C++ поиск слова в строке, игнорируя остальные
Еще ссылки по теме:
C++ Поиск и замена слова в строке
Функция: поиск слова в строке C++
Поиск слова в массиве символов (строке) C++
Реализовать поиск заданного слова в строке C++
Поиск слова в строке без функций C++

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

Или воспользуйтесь поиском по форуму:
vechestva
-28 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 47
14.09.2012, 20:36  [ТС]     C++ поиск слова в строке, игнорируя остальные #8
Цитата Сообщение от Игорь с++ Посмотреть сообщение
Пардон , а что то не понял вы в разделе фрилансоров?
я же написал, алгоритмом STL. Простой Сишный перебор меня не интересует. Раздел C++, а не Си. Я даже свой Сишный вариант предоставил
Yandex
Объявления
14.09.2012, 20:36     C++ поиск слова в строке, игнорируя остальные
Ответ Создать тему
Опции темы

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