Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/62: Рейтинг темы: голосов - 62, средняя оценка - 4.95
vechestva
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
1

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

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

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

дано:

C++
1
2
3
4
string text = "Hello myw.o.r.,ld!";
string word = "world";
 
// алгоритмы(STL)  поиска
нужно найти слово world в строке "Hello myw.o.r.,ld!"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.09.2012, 18:46
Ответы с готовыми решениями:

Поиск слова в строке
if(name.Pos("Ïðîãðàììèðîâàíèå") == 1) price *= 2; если слово...

Поиск слова в строке
Есть переменная search стринг типа, в которую введено с клавы слово. Нужно...

Поиск слова в строке
Исходя из сабжа - тысячу раз разжеванная тема, но у меня немного другой вопрос....

Поиск слова в строке
Дано: массив типа char, заполняется с клавиатуры. Дана переменная

Поиск слова в строке
Всем привет! задача нужно найти слово в строке например: char str1="hello...

7
DU
1486 / 1132 / 164
Регистрация: 05.12.2011
Сообщений: 2,279
14.09.2012, 18:51 2
эээ, не понял.
в строке
"ld,.xyzrow" тоже пристутствует слово world? или из-за рандомного порядка это не считается?
0
vechestva
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
14.09.2012, 19:05  [ТС] 3
Цитата Сообщение от DU Посмотреть сообщение
эээ, не понял.
в строке
"ld,.xyzrow" тоже пристутствует слово world? или из-за рандомного порядка это не считается?
последовательно
0
zitxbit
89 / 741 / 279
Регистрация: 11.04.2012
Сообщений: 971
14.09.2012, 19:27 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/479d7648ad6adc1a885defe1cd0d1173
2
Миниатюры
C++ поиск слова в строке, игнорируя остальные  
vechestva
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
14.09.2012, 19:55  [ТС] 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;
}
0
igorrr37
1867 / 1483 / 751
Регистрация: 21.12.2010
Сообщений: 2,473
Записей в блоге: 11
14.09.2012, 20:25 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;
}
1
Игорь с++
473 / 465 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
14.09.2012, 20:33 7
Цитата Сообщение от vechestva Посмотреть сообщение
у C++ есть STL, решите пожалуйста с помощью него
Пардон , а что то не понял вы в разделе фрилансоров?
0
vechestva
-28 / 0 / 1
Регистрация: 14.09.2012
Сообщений: 47
14.09.2012, 20:36  [ТС] 8
Цитата Сообщение от Игорь с++ Посмотреть сообщение
Пардон , а что то не понял вы в разделе фрилансоров?
я же написал, алгоритмом STL. Простой Сишный перебор меня не интересует. Раздел C++, а не Си. Я даже свой Сишный вариант предоставил
0
14.09.2012, 20:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2012, 20:36

Поиск слова в строке
Реализовать и использовать функцию поиска слова в строке: int searchWord(...

поиск слова в строке
Добрый день! Помогите найти ошибку. Задание длина файла 1000 символов (длина...

Поиск слова в строке
Дано: массив a типа char, вводится с клавиатуры. Дана переменная s, в которую...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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