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

Поиск строк в файле по маске - C++

Восстановить пароль Регистрация
 
noomer
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 7
09.12.2013, 18:57     Поиск строк в файле по маске #1
Программа осуществляет в файле поиск строк, отвечающих заданной маске. В маску могут входить символ «?» (любой печатный символ или пусто). Все остальные символы интерпретируются «как есть». Пример: маске http://*.com отвечают любые URL-адреса в зоне .com, маске а??а отвечают слова «алла», «авиа», «ага» и т.д.

Я не понимаю,в чем здесь ошибка.Люди,помогите?
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
34
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<iostream.h>
 
void main(){
clrscr();
char str_1[80];
char mask[80];
printf("ўўҐ¤ЁвҐ ¬*бЄг:  ");
scanf("%s",&mask[0]);
FILE *f1;
f1=fopen("filetxt.txt","r");
if(f1==NULL){
puts("error");
return;}
while(1)
{
 
fscanf(f1,"%s",&str_1[0]); //fgets
char str_2[300];
while (strlen(mask)==strlen(str_1))
{
for (int i=0;i<strlen(str_1) && i<strlen(mask);i++)
{
if( str_1[i]!=mask[i] && mask[i]!='?' || mask[i]!=' ') continue;
else {str_2[strlen(str_2)]=str_1[i]; str_2[strlen(str_2)+1]='\0';}
}
 
if (feof(f1)) break;}
printf("  %s",str_2);
getch();
fclose(f1);
}}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2013, 18:57     Поиск строк в файле по маске
Посмотрите здесь:

C++ Сортировка строк в файле
C++ Сортировка строк в файле
Перезапись строк в файле C++
C++ Как организовать поиск файла по маске
C++ Поиск в текстовом файле всех слов, заданных в другом текстом файле
C++ Поиск строк в файле методами бинарного поиска и перебора
C++ Поиск файла по маске
C++ Поиск файла по маске

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
09.12.2013, 20:27     Поиск строк в файле по маске #2
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
34
35
36
37
38
39
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
bool prmatch(char* str, char* mask)
{
    int i = 0;
    char first[256] = "\0";
    while (*mask != '?') 
        first[i++] = *mask++;
 
    int n = 0;
    char last[256] = "\0";
    while (*mask != '\0')
        last[n++] = *mask++;
 
    bool nb = false;
    for (int t = 0; t < i && !nb; t++)
        nb = (first[t] != str[t]) ? 1 : 0;
 
    bool ne = false; int s = strlen(last)-1;
    for (int r = strlen(str)-1; last[s] != '?' && !ne; r--)
        ne = (str[r] != last[s--]) ? 1 : 0;
 
    return (nb == false) && (ne == false);
}
 
int main(int argc, char* argv[])
{
    char str[256] = "newarmaturalux\0";
    char mask[256] = "newa??alux";
 
    printf("string = %s\nmask = %s\nresult = %d\n",prmatch(str,mask));
 
    _getch();
 
    return 0;
}
noomer
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 7
17.12.2013, 18:19  [ТС]     Поиск строк в файле по маске #3
Цитата Сообщение от zitxbit Посмотреть сообщение
bool nb = false;
что значит false?

Добавлено через 34 минуты
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
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<iostream.h>
 
void main(){
clrscr();
char str_1[80],str_2[300];
char mask[80];int i;
printf("ўўҐ¤ЁвҐ ¬*бЄг:  ");
scanf("%s",&mask[0]);
FILE *f1;
f1=fopen("filetxt.txt","r");
if(f1==NULL){
puts("error");
return;}
while(1)
{ int r=1;
fgets(str_1,255,f1);
if (strlen(mask)!=strlen(str_1)){ r=0;}
else for (i=0;i<strlen(mask);i++) {
 if(str_1[i]!=mask[i] && mask[i]!='?') {r=0; break;}
}
if (r) cout<<str_1;
if (feof(f1)) break;}
getch();
fclose(f1);
}
Вот что я получила,но все равно ничего не выводит
Yandex
Объявления
17.12.2013, 18:19     Поиск строк в файле по маске
Ответ Создать тему
Опции темы

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