Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2015, 06:39   #1
trustguy
 
Регистрация: 07.02.2015
Сообщений: 3
Печаль Поиск подстроки в строке с маской

Суть вот в чем: дан текст и маска. Маска содержит буквы и символ заполнитель *, который заменяет любое сочетание слов, в том числе и пустое. Нужно распечатать все слова, соответствующие маске.

Пример:

Исходный текст: "Она открыла окна настежь".

Результаты для различных значений маски:

*а - Она открыла окна
*кр* - открыла
*а*ь - настежь

Программу необходимо реализовать исключительно с использованием подпрограмм из библиотеки <string.h>, то есть работать со строкой, как с обычным массивом, нельзя.


Код:
#include "stdafx.h"
#include <conio.h>
#include <locale>
#include <string.h>
#define N 50
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, ".1251");
    char *str, *search;
    str = (char*)malloc(N*sizeof(char));
    search = (char*)malloc(N*sizeof(char));
    puts("Введите строку:\n");
    gets_s(str,N);
 
    puts("Введите слова для поиска:\n");
    gets_s(search,N);
 
    printf(strstr(str, search));
    printf("\n");
    
 
    _getch();
 
    return 0;
}
я хотел осуществить поиск через подпрограмму strstr(), но она возвращает следующие результаты:

Пример: введена строка "Она готовила очень вкусные пирожные"
Строка поиска: "го"

Тогда функция вернет строку "готовила очень вкусные пирожные".

Есть ли в C какая-нибудь функция, чтобы возвращалось именно это слово, в котором содержится подстрока. И еще я так и не придумал, что делать с этими звездочками. Ведь в качестве входных данных поиска должна выступать строка вида "го*". Помогите, пожалуйста

Последний раз редактировалось trustguy; 08.02.2015 в 09:10.
trustguy вне форума Ответить с цитированием
Старый 08.02.2015, 09:13   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Тогда функция вернет строку "готовила очень вкусные пирожные".
Нет, она возвращает указатель на первое вхождение, а уж как ВЫ его интерпретируете это ваши трудности.

Цитата:
И еще я так и не придумал, что делать с этими звездочками.
Гуглим regexp и познаем дао. Если лень или просто надо сдать, то гуглим boost regexp.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск подстроки в строке с маской trustguy Общие вопросы C/C++ 0 07.02.2015 18:49
поиск подстроки в строке Aina Utebekova Помощь студентам 27 11.10.2012 04:24
поиск подстроки в строке Pozitiffe Общие вопросы C/C++ 5 18.02.2012 21:48
Поиск подстроки в строке valdemar593 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 03.06.2010 21:42
поиск подстроки в строке!!! StoneSour Общие вопросы C/C++ 2 15.03.2010 21:31