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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
#1

Поиск строк по образцу - C++

20.04.2010, 21:30. Просмотров 966. Ответов 16
Метки нет (Все метки)

Если в командной строке заданы опции -x -n <образец>, то необходимо распечатать те строки введенного текста с их номерами, в которых не найден указанный образец, а при указании опций -x <образец> распечатать те же строки, только без номеров.
Че то я не могу понять
Помогите плиз))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт С++
7155 / 3295 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
21.04.2010, 14:12     Поиск строк по образцу #2
Че то я не могу понять
Понять что ?
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
21.04.2010, 14:37  [ТС]     Поиск строк по образцу #3
Цитата Сообщение от odip Посмотреть сообщение
Понять что ?
ну задачу.

Цитата Сообщение от Бо Посмотреть сообщение
сли в командной строке заданы опции -x -n <образец>
хотябы даже это?
Maxim Prishchepa
Эксперт С++
1920 / 1032 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
21.04.2010, 14:41     Поиск строк по образцу #4
Цитата Сообщение от Бо Посмотреть сообщение
Если в командной строке заданы опции -x -n <образец>,
скорее всего имеется ввиду, что при вызове вашей программы будет указанно: youProgram.exe -x -n <образец>, смотрите параметры функции main, а именно: agrс и agrv
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
29.05.2010, 10:20  [ТС]     Поиск строк по образцу #5
а можна хоть начало программы чуть чуть,чтоб я понял откудава стартовать?)
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
31.05.2010, 17:58     Поиск строк по образцу #6
Цитата Сообщение от Бо Посмотреть сообщение
а можна хоть начало программы чуть чуть
можно!
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char **argv){
/* объявление переменных */
if ( argc == 1 ){
    printf("Usage: %s [-n] [-x <template_to_exclude>] <file_name>\n", *argv);
    exit(EXIT_FAILURE);
}
/* тут сама программа...*/
exit(EXIT_SUCCESS);
}
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
07.06.2010, 22:58  [ТС]     Поиск строк по образцу #7
шо то ни как не могу въехать
помогите!

Добавлено через 1 час 23 минуты
у меня ни када не было ни одной задачи на командную строку,поэтому я не могу разобраться.
вот рассматриваю пример и тоже не понятно((

Составить программу, которая печатает аргументы командной строки в прямом порядке, если первым из них идет опция -s, и в обратном порядке, если первый аргумент - опция -r (cаму опцию не распечатывать).
Например, при вызове C:\prog -r мне не дают ананасы
должно быть выдано: ананасы дают не мне


что и куда надо вводить??


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    void main(int argc, char *argv[])
    {
      if(argc<2) 
        { 
          puts("Нужны аргументы в командной строке!");
          exit(-1);
        }
      if(argv[1][0]=='-' && argv[1][1]=='s' && argv[1][2]=='\0')
       { ++argv;  // будем печатать аргументы, начиная с третьего
         while (--argc>1)
           printf((argc>2)?"%s ":"%s\n", *++argv);
       }
       else if(strcmp(argv[1], "-r")==0)
          while (--argc>1)
            printf((argc>2)?"%s ":"%s\n", *(argv+argc));
         else puts("Первым должен быть аргумент -s или -r");
    }
Добавлено через 23 часа 28 минут
ну отреагируйте кто нить!!!!

Добавлено через 6 часов 32 минуты
Хелп!Хелп!Хелп!
time2die
51 / 51 / 3
Регистрация: 25.05.2010
Сообщений: 182
07.06.2010, 23:14     Поиск строк по образцу #8
Цитата Сообщение от Бо Посмотреть сообщение
Если в командной строке заданы опции -x -n <образец>, то необходимо распечатать те строки введенного текста с их номерами, в которых не найден указанный образец, а при указании опций -x <образец> распечатать те же строки, только без номеров.
Че то я не могу понять
Помогите плиз))
обрати внимание на grep
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
07.06.2010, 23:16  [ТС]     Поиск строк по образцу #9
Цитата Сообщение от time2die Посмотреть сообщение
обрати внимание на grep
grep??что это?
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
08.06.2010, 00:38     Поиск строк по образцу #10
Бо, за две с половиной недели так ничего и не придумалось? А ведь это довольно лёгкое задание, дальше-то что будет? Вот, изучайте:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/*
    Extendet cat program. Options:
    -n : string numbers.
    -e "some string" : pattern to exclude strings contains it.
    file_name : name of input file. Single - for stdin.
*/
 
int main(int argc, char **argv){
    char * progName, * fileName, * pattern, buf[BUFSIZ];
    int countEnabled, i;
    long nRow;
    FILE * fin;
    
    /* default values */
    progName = *argv;
    fileName = NULL;
    pattern = NULL;
    *buf = 0;
    countEnabled = 0;
    nRow = 0;
    fin = NULL;
    
    if ( argc < 2 ){
        fprintf(stderr, "Usage: %s [-n] [-e \"pattern\"] <file_name>\n", progName);
        exit(EXIT_FAILURE);
    }
    
    /* arguments */
    for ( i = 1; i < argc; ++i ){
        if ( argv[i][0] == '-' ){
            switch ( argv[i][1] ){
                case 'n' :
                    countEnabled = 1;
                    break;
                case 'e' :
                    if ( ++i > argc - 2 ){
                        fprintf(stderr, "%s: option -e used without pattern!\n", progName);
                        exit(EXIT_FAILURE);
                    }
                    pattern = argv[i];
                    break;
                case '\0' :
                    fin = stdin;
                    break;
                default :
                    fprintf(stderr, "%s: unknown option: %s\n", progName, argv[i]);
                    exit(EXIT_FAILURE);
            }
        }
        else if ( i > argc - 1 ){
            fprintf(stderr, "%s: the last parametre should be a filename!\n", progName);
            exit(EXIT_FAILURE);
        }
        else
            fileName = argv[i];
    }
    
    /* opening the file */
    if ( ! fin ) {
        if ( ! fileName ){
            fprintf(stderr, "%s: no input file name given!\n", progName);
            exit(EXIT_FAILURE);
        }
        if ( ( fin = fopen(fileName, "r") ) == NULL ){
            fprintf(stderr, "%s: can't open file %s for input!\n", progName, fileName);
            exit(EXIT_FAILURE);
        }
    }
    
    while ( fgets(buf, BUFSIZ, fin) ){
        if ( pattern )
            if ( strstr(buf, pattern) )
                continue;
        if ( countEnabled )
            printf("%03ld: %s", ++nRow, buf);
        else
            printf("%s", buf);
    }
    if ( ferror(fin) ){
        perror("ferror");
        exit(EXIT_FAILURE);
    }
    if ( fin != stdin )
        fclose(fin);
    
    exit(EXIT_SUCCESS);
}
Цитата Сообщение от Бо Посмотреть сообщение
grep??что это?
man grep
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
08.06.2010, 18:56  [ТС]     Поиск строк по образцу #11
easybudda, спасиба огромнейшее!!!)))))

Добавлено через 47 минут
да и ещея так понял,что это все что написано является функцией?нужно теперь написать ввод числа и какого либо текста??а образец у нас находится в файле??
чесно очень туго что то дается!то ли это лето оказывает влияние ,то ли я такой бестолковый.
подскажите плиз)
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
08.06.2010, 19:09     Поиск строк по образцу #12
Бо, сохраните это в файл к примеру program.c скомпилируйте и запустите из командной строки
program.exe -n -e exit program.c

кстати, сейчас вижу, что написал слегка коряво... но исправлять уже лениво, попробуйте сами, если найдёте...
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
08.06.2010, 19:26  [ТС]     Поиск строк по образцу #13
Цитата Сообщение от easybudda Посмотреть сообщение
сохраните это в файл к примеру program.c скомпилируйте и запустите из командной строки
program.exe -n -e exit program.c
сохранил.открыл в меню пуск командная строка(первый раз в жизни) и что теперь??писал -n -e exit program.c,перетаскивал файл program.c ..не пойму как с ней работать.
объясните плиз.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
08.06.2010, 19:29     Поиск строк по образцу #14
Цитата Сообщение от Бо Посмотреть сообщение
открыл в меню пуск командная строка(первый раз в жизни)
Поздравляю!
Для простоты переложите и program.exe и program.c в корень диска С:
а потом в консоли
c:
cd \
program.exe -n -e exit program.c
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
08.06.2010, 19:37  [ТС]     Поиск строк по образцу #15
Цитата Сообщение от easybudda Посмотреть сообщение
Поздравляю!
cпc)))

Цитата Сообщение от easybudda Посмотреть сообщение
переложите и program.exe и program.c в корень диска С:
а потом в консоли
мля я не понимаю этих слов
переместить файлы
Цитата Сообщение от easybudda Посмотреть сообщение
program.exe и program.c
на С диск,а потом вкомандной строке ввести??
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
08.06.2010, 19:51     Поиск строк по образцу #16
Цитата Сообщение от Бо Посмотреть сообщение
переместить файлы
Цитата Сообщение от easybudda Посмотреть сообщение
program.exe и program.c
на С диск,а потом вкомандной строке ввести??
ну можно и так сказать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2010, 15:13     Поиск строк по образцу
Еще ссылки по теме:

C++ Поиск в массиве строк
C++ Поиск строк с нулевыми элементами
C++ Поиск повторяющихся строк в файле
C++ Обработка строк и поиск подстроки
C++ Поиск максимального элемента матрицы и перестановка ее строк

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

Или воспользуйтесь поиском по форуму:
Бо
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
09.06.2010, 15:13  [ТС]     Поиск строк по образцу #17
ну у меня запускается после этого визуал ,а дальше как?
компилировать?
или там же писать program.exe -n -e exit program.c ?

Добавлено через 1 час 0 минут
подскажите на простом языке,как запустить эту программу нормально.а то я ваще дуб и у меня не получается

Добавлено через 18 часов 16 минут
easybudda, спасиба !я разобрался
Yandex
Объявления
09.06.2010, 15:13     Поиск строк по образцу
Ответ Создать тему
Опции темы

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