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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
GodOfTheCode
Сообщений: n/a
#1

Поиск слова в массиве символов (строке) - C++

06.11.2012, 00:32. Просмотров 1670. Ответов 1
Метки нет (Все метки)

Вроде правильно все а не работает. В чем причина?
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
33
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <Windows.h>
 
using namespace std;
void main()
{
    setlocale(LC_ALL,"");
 
    cout << "Введите строку:\n";
 
    bool finded = false;
    char string[128]; 
    gets_s(string);
    
 
    for (int i = 0; i < 128; i++) {
        char search[] = {string[i], string[(i+1)], string[(i+2)]};
        if (search == "one") {
            finded = true;
            break;
        }
        if (string[i] == NULL)
            break;
    }
    if (finded)
        cout << endl << "Слово \"one\" найдено в строке";
    else
        cout << endl << "Слово \"one\" не найдено в строке";
    cout << endl;
    system("PAUSE");
}
Добавлено через 1 минуту
И еще - почему просто gets() не работает. Пользуюсь Visual Studio 2012 Premium

Добавлено через 3 минуты
А задача сама такова:
Дан текст, каждый символ которого может быть малой буквой, цифрой или одним из знаков +, -, *. Группой букв будем называть такую совокупность последовательно расположенных букв, которой непосредственно не предшествует и за которой непосредственно не следует буква. Аналогично определим группу цифр и группу знаков. Выяснить, встречается ли в данном тексте группа букв one.

Добавлено через 6 минут
Решил обычным условием. Но думаю так не будет соответствовать условию задачи:
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 "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <Windows.h>
 
using namespace std;
void main()
{
    setlocale(LC_ALL,"");
 
    cout << "Введите строку:\n";
 
    bool finded = false;
    char string[128]; 
    gets_s(string);
    
 
    for (int i = 0; i < 128; i++) {
        if (string[i] == 'o' && string[(i+1)] == 'n' && string[(i+2)] == 'e') {
            finded = true;
            break;
        }
        if (string[i] == NULL)
            break;
    }
    if (finded)
        cout << endl << "Слово \"one\" найдено в строке";
    else
        cout << endl << "Слово \"one\" не найдено в строке";
    cout << endl;
    system("PAUSE");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2012, 00:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск слова в массиве символов (строке) (C++):

Поиск слова в массиве символов char - C++
Получаю массив символов типа char из com port. есть ли способ поиска в этом массиве необходимого слова кроме как побайтово копировать ...

Расположить слова в массиве символов в алфавитном порядке по первой букве слова - C++
Введите массив символов из 14 элементов. Расположить слова в алфавитном порядке по первой букве слова. Добавлено через 19 часов 40...

Поиск символов в строке - C++
Есть строка в файле txt, как организовать поиск наиболее часто повторяющегося символа в строке ?

Поиск символов в строке C++ - C++
Помогите с задачей, буду очень благодарен Суть задачи такова: в качестве строки вводим с клавиатуры положительное число. Длина строки не...

Поиск символов в строке - C++
Доброго времени суток! Помогите пожалуйста-Нужно подсчитать в строке количество букв «в» Строку из нескольких слов мы должны ввести...

Поиск символов в строке - C++
задание такое: Дана строка произвольной длины. Группы символов, разделенные пробелами (одним или несколькими), будем называть словами....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.11.2012, 01:50 #2
Добавлено через 5 минут
Цитата Сообщение от GodOfTheCode Посмотреть сообщение
Решил обычным условием. Но думаю так не будет соответствовать условию задачи:
Если one будет частью другой группы, то код выдаст, что есть. Нужно ещё пробелы проверить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2012, 01:50
Привет! Вот еще темы с ответами:

Поиск символов в строке - C++
написать прогу, которая запрашивает с клавиатуры строку, длиной 100 символов ,а потом находит в ней символы (. , !) и выводит на экран...

Поиск палиндрома в строке символов - C++
Условие задачи: 1) Задан символьный массив F(N), N&lt;=260. Найти отрезок массива максимальной длины, в котором первый символ равен...

Поиск чисел в строке символов - C++
Прошу помочь с алгоритмом,т к сама не понимаю. Пыталась записать каждое число в отдельную строку,а потом призвоить float строке,но это...

Поиск четных символов в строке - C++
вот мой код int main() { string a; getline(cin, a); for (int i = 0; i&lt;a.size();i++) if (a % 2 == 0) cout &lt;&lt; a; ...


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

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

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