Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
trustguy
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 16
#1

Поиск подстроки в строке с маской

08.02.2015, 06:36. Просмотров 724. Ответов 3
Метки нет (Все метки)

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

Пример:

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

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

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

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

Добавлено через 13 часов 20 минут
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
#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 какая-нибудь функция, чтобы возвращалось именно это слово, в котором содержится подстрока. И еще я так и не придумал, что делать с этими звездочками. Ведь в качестве входных данных поиска должна выступать строка вида "го*". Помогите, пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2015, 06:36
Ответы с готовыми решениями:

Поиск подстроки в строке
Здравствуйте! Необходимо выполнить следующее задание. В заданной строке найти...

Поиск подстроки в строке
Задача заключается в том, что есть один массив, состоящий из &quot;ab cd ef&quot; и есть...

Поиск подстроки в строке
Нужно сделать поиск подстроки в строке на С. Без использования встроенной...

Поиск подстроки в строке
Программу я написал, но она не хочет работать, не могу отладить... ...

Поиск подстроки в строке
есть код, только я не очень понимаю как он работает P.S. считает сколько раз...

3
rao
858 / 415 / 158
Регистрация: 02.04.2014
Сообщений: 1,201
08.02.2015, 10:02 #2
Если маски могут быть сложные (с множеством звездочек), то вручную это сделать будет тяжело. В с++ можно было бы воспользоваться регулярными выражениями, а в стандартном си их нет. Такой вопрос уже задавался.

И почему нельзя работать со строкой как с массивом? Символьный массив - встроенный тип данных, работать с ним можно всегда. А функции из <string.h> - подключаемые.
0
trustguy
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 16
08.02.2015, 12:15  [ТС] #3
Необходимо написать два варианта решения задачи: первый - работать со строкой, как с массивом, без использования подпрограмм из <string.h>, второй, соответственно, использовать только их и не рассматривать строку, как массив.
0
gazlan
3139 / 1915 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
08.02.2015, 13:32 #4
Цитата Сообщение от trustguy Посмотреть сообщение
что делать с этими звездочками
glob (programming)
Wildcard string compare (globbing)
Glob
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2015, 13:32

Поиск подстроки в строке
помогите пожалуйста написать без string

Как осуществить поиск подстроки в строке?
Как осуществить поиск подстроки в строке на языке С ??

Поиск подстроки внутри данной строки, замена найденной подстроки на другую строку
Выполнить поиск подстроки внутри данной строки,замену найденной подстроки на...


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

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

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