0 / 0 / 2
Регистрация: 09.11.2013
Сообщений: 7
1

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

09.12.2013, 18:57. Показов 4564. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа осуществляет в файле поиск строк, отвечающих заданной маске. В маску могут входить символ «?» (любой печатный символ или пусто). Все остальные символы интерпретируются «как есть». Пример: маске 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);
}}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2013, 18:57
Ответы с готовыми решениями:

Поиск в файле по маске
Здравствуйте! Имеется следующее задание: есть нормализованный файл с телефонными номерами, для...

Замена в текстовом файле строк по маске
подскажите, можно ли как то замену по маске делать в txt ? например надо найти &lt;sup&gt;&lt;a name=r3&gt;&lt;a...

Поиск по маске в большом текстовом файле
Возник вопрос, имеются текстовые файлы, содержащие от 300 000 строк, в них надо найти определенные...

Удаление дублирующих строк в текстовом файле по маске
Здравствуйте! Есть файл file_in.txt - список прокси построчно. Его нужно отфильтровать. 1. Нужно...

2
96 / 748 / 279
Регистрация: 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;
}
0
0 / 0 / 2
Регистрация: 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);
}
Вот что я получила,но все равно ничего не выводит
0
17.12.2013, 18:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2013, 18:19
Помогаю со студенческими работами здесь

Поиск в текстовом файле предложений, соответствующих маске
Задано маску, которая состоит из набора целых чисел. Каждое число определяет кол-во букв в...

Поиск и замена строк по маске
Имеется строки с разделителем «;» в нескольких колонках файла Excel большого размера следующего...

delphi и word. Поиск слов по маске и между строк.
Добрый день. Не судите строго. Принялся за изучение delphi. у меня такая задача. Программка...

Замена фразы по маске на другую фразу по маске в файле
Добрый день! Имеется задача, которую, к сожалению, пока не могу реализовать: Есть текстовый файл...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru