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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
GodOfTheCode
Сообщений: n/a
06.11.2012, 00:32     Поиск слова в массиве символов (строке) #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++
C++ поиск слова в строке
C++ поиск символов в строке
C++ Поиск слова в массиве символов char
C++ Поиск символов в строке
C++ Поиск символов в строке
C++ поиск символов в строке
Поиск слова в строке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
06.11.2012, 01:50     Поиск слова в массиве символов (строке) #2
Добавлено через 5 минут
Цитата Сообщение от GodOfTheCode Посмотреть сообщение
Решил обычным условием. Но думаю так не будет соответствовать условию задачи:
Если one будет частью другой группы, то код выдаст, что есть. Нужно ещё пробелы проверить.
Yandex
Объявления
06.11.2012, 01:50     Поиск слова в массиве символов (строке)
Ответ Создать тему
Опции темы

Текущее время: 00:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru