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

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

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

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

14.09.2012, 18:46. Просмотров 8486. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C++ поиск слова в строке, игнорируя остальные (C++):

Поиск слова в строке - C++
if(name.Pos("Ïðîãðàììèðîâàíèå") == 1) price *= 2; если слово Программирование в начале строки то price *= 2 подскажите а как...

поиск слова в строке - C++
Всем привет! задача нужно найти слово в строке например: char str1="hello world"; char str2="world"; if(str1==str2) ...

поиск слова в строке - C++
вот есть программка, которая должна искать слово word_r (отдельный файл) в строке rus (отедельный файл) и в случае нахождения выводить на...

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

Поиск слова в строке - C++
Исходя из сабжа - тысячу раз разжеванная тема, но у меня немного другой вопрос. string surname; while (getline(f, S)){ if...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.09.2012, 18:51 #2
эээ, не понял.
в строке
"ld,.xyzrow" тоже пристутствует слово world? или из-за рандомного порядка это не считается?
0
vechestva
-28 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 47
14.09.2012, 19:05  [ТС] #3
Цитата Сообщение от DU Посмотреть сообщение
эээ, не понял.
в строке
"ld,.xyzrow" тоже пристутствует слово world? или из-за рандомного порядка это не считается?
последовательно
0
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 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/479d76...5defe1cd0d1173
2
Миниатюры
C++ поиск слова в строке, игнорируя остальные  
vechestva
-28 / 0 / 0
Регистрация: 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
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
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
Игорь с++
436 / 459 / 16
Регистрация: 26.01.2011
Сообщений: 2,032
14.09.2012, 20:33 #7
Цитата Сообщение от vechestva Посмотреть сообщение
у C++ есть STL, решите пожалуйста с помощью него
Пардон , а что то не понял вы в разделе фрилансоров?
0
vechestva
-28 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 47
14.09.2012, 20:36  [ТС] #8
Цитата Сообщение от Игорь с++ Посмотреть сообщение
Пардон , а что то не понял вы в разделе фрилансоров?
я же написал, алгоритмом STL. Простой Сишный перебор меня не интересует. Раздел C++, а не Си. Я даже свой Сишный вариант предоставил
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2012, 20:36
Привет! Вот еще темы с ответами:

Поиск слова в строке - C++
Реализовать и использовать функцию поиска слова в строке: int searchWord( const char str, const char word); Входные данные: str...

Функция: поиск слова в строке - C++
нужно написать свою ф-цию, которая проверяет, есть ли какое-то слово в строке! возвращает позицию слова, ести оно есть!

Поиск и замена слова в строке - C++
Добрый вечер. Помогите написать программу которая ищет в введенной строке одинаковые слова и меняет на слово введенное с клавиатуры (любых...

Поиск слова в массиве символов (строке) - C++
Вроде правильно все а не работает. В чем причина? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;Windows.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.09.2012, 20:36
Ответ Создать тему
Опции темы

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