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

поиск всех вхождений шаблона в строку - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
21.06.2010, 00:31     поиск всех вхождений шаблона в строку #1
Здравствуйте,хотела к вам обратиться за помощью..в файле t.txt есть строка из символов букв латинского алфавита,длиной до 100000 знаков. Так же в текстовом файле s.txt задаётся шаблон, в котором кроме букв латинского алфавита может присутствовать знак "*",который в свою очередь равен либо пробелу,либо произвольным буквам лат.алфавита.Длина шаблона до 20 символов.Подсчитать все возможные вхождения шаблона в строку.Ответ записать в файл.
Как читать файл,разбивать на символы я примерно знаю,но вот как сделать так,чтобы звёздочка заменяла любую комбинацию символов нет..Очень надеюсь на вашу скорую помощь*))
P.S.:шаблон можно вводить и с консоли,чтобы не усложнять задачу с считыванием символов))

Добавлено через 4 часа 58 минут
хотя бы какие функции использовать для реализации???Подскажите пожалуйста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Egeni
10 / 10 / 1
Регистрация: 17.06.2010
Сообщений: 107
Записей в блоге: 1
21.06.2010, 01:30     поиск всех вхождений шаблона в строку #2
а что есть уже из наработанного?


вот функция поиска [C++] Работа с файлами
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
21.06.2010, 02:09  [ТС]     поиск всех вхождений шаблона в строку #3
есть программа поиска шаблона в тексте,но в maple..и она правда тоже не до конца доработана..вся загвоздка в "*"...я просто не сильна в си/си++..я на первом курсе изучала только паскаль..а потом перевелась..и с изучением новых языков есть сложности..
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
22.06.2010, 14:15  [ТС]     поиск всех вхождений шаблона в строку #4
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
 
int main(int argc, char *argv[])
{
 
int filedes_t; 
int filedes_p; 
ssize_t nread;
ssize_t rread;
char text[1050000]; // ïîñëåäîâГ*òëüГ*îñòü
char pattern[30]; // ïîäïîñëåäîâГ*òåëüГ*îñòü
char *pref, *suf;
 
if (argc != 3) {
printf("input 2 argument - ./filename text pattern\n");
return 1;
}
 
if ((filedes_p = open(argv[2], O_RDONLY)) == -1) {
printf("cant open pattern file\n");
return 1;
}
 
if ((filedes_t = open(argv[1], O_RDONLY)) == -1) {
printf("cant open text file\n");
return 1;
}
 
if ((rread = read(filedes_p, pattern, 30)) == -1) {
printf("ERROR read pattern\n");
return 1;
}
 
if ((nread = read(filedes_t, text, 1000000)) == -1) {
printf("ERROR read text\n");
return 1;
}
void main(){
pref = strtok_r(pattern, "*", &suf);
printf ("%s\n", pref);
printf ("%s\n", suf);
 
long int[] n, m;
int i,j,p,l;
for (i=0;i<strlen(text);i++)
{
n[i]=strstr_cnt(text,pref);
printf("%d \n",n[i]);
}
for (j=0;j<strlen(text);j++)
{
m[j]=strstr_cnt(text,suf);
printf("%d \n",m[j]);
}
p=sizeof(n[i]);
l=sizeof(m[j]);
for(i=0; i<p; i++)
for(j=0; j<l; j++)
if(n[i]+strlen(pref)< m[j])
printf("Г*Г*øëè âõîæäåГ*ГЁГҐ Г± %d ГЇГ® %d\n", n[i], m[j]+strlen(suf)); 
}
}
В чём тут ошибка?почему метод strtok_r при компиляции выдаёт ошибку,а от туда и дальше прога не ладится(((((((((((Мои наработки
Aaxenon
Light Knight
 Аватар для Aaxenon
106 / 29 / 3
Регистрация: 03.06.2010
Сообщений: 361
22.06.2010, 14:56     поиск всех вхождений шаблона в строку #5
а какая выдается ошибка
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
22.06.2010, 22:19  [ТС]     поиск всех вхождений шаблона в строку #6
выдает ошибку :[Warning] assignment makes pointer from integer without a cast
я ещё немного код передела..и снова вылезла уйма ошибок((

Добавлено через 1 минуту
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
 
int main(int argc, char *argv[])
{
 
int filedes_t; 
int filedes_p; 
ssize_t nread;
ssize_t rread;
char text[1050000]; // ïîñëåäîâГ*òëüГ*îñòü
char pattern[30]; // ïîäïîñëåäîâГ*òåëüГ*îñòü
char *pref, *suf;
 
if (argc != 3) {
printf("input 2 argument - ./filename text pattern\n");
return 1;
}
 
if ((filedes_p = open(argv[2], O_RDONLY)) == -1) {
printf("cant open pattern file\n");
return 1;
}
 
if ((filedes_t = open(argv[1], O_RDONLY)) == -1) {
printf("cant open text file\n");
return 1;
}
 
if ((rread = read(filedes_p, pattern, 30)) == -1) {
printf("ERROR read pattern\n");
return 1;
}
 
if ((nread = read(filedes_t, text, 1000000)) == -1) {
printf("ERROR read text\n");
return 1;
}
pref = strtok_r(pattern, "*", &suf);
printf ("%s\n", pref);
printf ("%s\n", suf);
 
int strstr_cnt(const char *Src,const char *Sub)
{
  int count = 0;
  long int len = strlen(Src);
  for (int i=0; i<len; i++)
  {
    if(Sub[0]==Src[i])
    {
    bool is = true;
    for(int j=0; j<strlen(Sub); j++)
    if(i+j<len)
    {
                 if(Sub[j]!=Src[i+j]) is=false;
    }
    else is=false;
    if(is) count++;
     }
  }
  return count;
}
long int[] n, m;
int i,j,p,j;
for (i=0;i<strlen(text);i++)
{
 n[i]=strstr_cnt(text,pref);
    printf("%d \n",n[i]);
}
    for (j=0;j<strlen(text);j++)
    {
     m[j]=strstr_cnt(text,suf);
     printf("%d \n",m[j]);
        }
p=sizeof(n[i]);
l=sizeof(m[j]);
      for(i=0; i<p; i++)
for(j=0; j<l; j++)
if(n[i]+strlen(pref)< m[j])
printf("Г*Г*øëè âõîæäåГ*ГЁГҐ Г± %d ГЇГ® %d\n", n[i], m[j]+strlen(suf));  
}
}
Aaxenon
Light Knight
 Аватар для Aaxenon
106 / 29 / 3
Регистрация: 03.06.2010
Сообщений: 361
22.06.2010, 22:20     поиск всех вхождений шаблона в строку #7
а нужен с или с++?
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
22.06.2010, 22:22  [ТС]     поиск всех вхождений шаблона в строку #8
С..ошиблась с выбором кода в выделении)..ну если другую прогу делать,то без разницы..)
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.06.2010, 08:42     поиск всех вхождений шаблона в строку #9
C
1
int strstr_cnt(const char *Src,const char *Sub)
эта функция не может быть в функции main(), её всю нужно вынести наружу
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,688
23.06.2010, 16:35     поиск всех вхождений шаблона в строку #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
//Задаётся шаблон, в котором кроме букв латинского алфавита может присутствовать 
//знак "*", который в свою очередь равен либо пробелу,либо произвольным буквам 
//лат. алфавита. Подсчитать все возможные вхождения шаблона в строку. 
//Шаблон можно вводить и с консоли.
 
//==================================================================================
//  Программа ведет поиск соответствия шаблону слева направо с каждой позиции строки.
//  Для подстановки текста вместо звездочки используется ленивый алгоритм.
//==================================================================================
#include <iostream>
#include <string>
#include <algorithm>
#include <iomanip>
 
typedef std::string       T_str;
typedef T_str::size_type  T_pos;
 
int  get_chislo_vxozhdeniy_shablona_v_str
    (
        T_str pattern,
        T_str str        
    )
{
    std::cout << std::endl;
 
    const char  METASYMBOL         = '*';
    int         metasymbols_total  = std::count
                                     (pattern.begin(), pattern.end(), METASYMBOL);
 
    if(metasymbols_total > 1)  return 0;    
    if(metasymbols_total == 0) pattern += METASYMBOL;
 
    T_pos  metasymbol_pos  = pattern.find(METASYMBOL);
    T_str  pref            = pattern.substr(0, metasymbol_pos);
    T_str  suf             = pattern.substr(metasymbol_pos + 1);
    int    count           = 0;
 
    for(T_pos  pref_find_pos = 0;; ++count)    
    {
        T_pos  pref_pos = str.find(pref, pref_find_pos);
        if(pref_pos == T_str::npos) break; 
 
        T_pos  suf_find_pos  = pref_pos + metasymbol_pos;
        T_pos  suf_pos       = str.find(suf, suf_find_pos);
 
        if(suf_pos == T_str::npos) break;                
        pref_find_pos = pref_pos + 1;        
        std::cout << "Позиция в строке "
                  << std::setw(2)
                  << pref_pos
                  << ": "                  
                  << str.substr(pref_pos, suf_pos + suf.length() - pref_pos)
                  << std::endl;
    }
    return count;
}
 
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите строку:" 
              << std::endl;
    T_str str;
    getline(std::cin, str);
    std::cout << "Введите шаблон:"               
              << std::endl;
    T_str pattern;
    getline(std::cin, pattern);
    
    std::cout << "Число вхождений шаблона в строку равно "
              << get_chislo_vxozhdeniy_shablona_v_str(pattern, str)
              << "."
              << std::endl;   
    return 0;
}
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
23.06.2010, 22:08  [ТС]     поиск всех вхождений шаблона в строку #11
спасибо огромное..)))правда есть одна беда,видимо у меня с компиляторм..не удаётся посмотреть результат(((
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,688
23.06.2010, 22:29     поиск всех вхождений шаблона в строку #12
Цитата Сообщение от Solnechnayanny Посмотреть сообщение
спасибо огромное..)))правда есть одна беда,видимо у меня с компиляторм..не удаётся посмотреть результат(((
В смысле?
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
24.06.2010, 01:39  [ТС]     поиск всех вхождений шаблона в строку #13
окно сразу закрывается после ввода шаблона..у меня программа Bloodshed dev-c++

Добавлено через 44 минуты
ответ я увидела,но задача считает не все возможные вхождения...к примеру для acacbcbc,шаблон ac*bc входит в строку 4 раза:acacbc;acacbcbc,acbc,acbcbc.А прога находит лишь acacbc;acbc=(((
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,688
24.06.2010, 02:31     поиск всех вхождений шаблона в строку #14
Цитата Сообщение от Solnechnayanny Посмотреть сообщение
окно сразу закрывается после ввода шаблона..у меня программа Bloodshed dev-c++

Добавлено через 44 минуты
ответ я увидела,но задача считает не все возможные вхождения...к примеру для acacbcbc,шаблон ac*bc входит в строку 4 раза:acacbc;acacbcbc,acbc,acbcbc.А прога находит лишь acacbc;acbc=(((
Так вы наверно это еще не читали:
http://www.cyberforum.ru/cpp-beginners/thread10807.html
Мне легче, у меня в Visual Studio ничего никуда не исчезает.

А насчет подстрок - вы уже определитесь что вам нужно. В примере, который вы приводили в параллельной теме, с каждой позиции строки вычислялась подстрока по ленивому алгоритму, т.е. наименьшая из возможных. А здесь вы предлагаете с каждой позиции вычислять одновременно и по ленивому и по жадному алгоритму. Те примеры вы откуда взяли? Если вам преподаватель дал, то моя программа по ним сделана и их выполняет. Если нужно что-то другое, то нужно четче формулировать.
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
24.06.2010, 02:39  [ТС]     поиск всех вхождений шаблона в строку #15
извините,если не смогла до вас донести суть задания..не всегда получается его чётко сформулировать ...те примеры взяты с головы,чтобы более или менее объяснить,что мне нужно..преподаватель дал 2 пример)каким алгоритмом решать я не знаю,но предполагаю,что жадным..я пыталась разбить шаблон на префикс и суффикс,а затем отдельно найти вхождения того и другого..а затем выбрать те пары,где ac находится перед bc..надеюсь теперь стало понятнее
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,688
24.06.2010, 02:59     поиск всех вхождений шаблона в строку #16
Мне понятно, что условия задачи вам самой пока непонятны, и вам надо уточнить их с преподавателем.
А где пример, который дал преподаватель?
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
24.06.2010, 03:00  [ТС]     поиск всех вхождений шаблона в строку #17
строка acacbcbc,шаблон ac*bc,ответ я написала.И метод решения,который я привела является правильным.Просто я предполагаю,что существуют разные способы решения этой задачи.
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,688
24.06.2010, 03:10     поиск всех вхождений шаблона в строку #18
Т.е. он предлагает искать с каждой позиции строки все возможные подстроки. Можно и так сделать, только тогда если, скажем, у вас вначале строки длиной 100000 стоит буква z, и задан шаблон «z*», то первое соответствие будет вся строка, второе - строка без последнего символа, и так сто тысяч раз.
Solnechnayanny
1 / 1 / 0
Регистрация: 20.06.2010
Сообщений: 43
24.06.2010, 03:12  [ТС]     поиск всех вхождений шаблона в строку #19
видимо так..также он упоминал алгоритм shift-or,правда я в нём так и не смогла разобраться=(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.06.2010, 12:24     поиск всех вхождений шаблона в строку
Еще ссылки по теме:

C++ Найти количество и места вхождений подстроки в строку
Найти количество вхождений строки S0 в строку S C++
C++ Количество вхождений строки S2 в строку S1

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

Или воспользуйтесь поиском по форуму:
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,688
24.06.2010, 12:24     поиск всех вхождений шаблона в строку #20
Итак, возможны три способа поиска соответствующих шаблону подстрок с каждой позиции строки:
1. Искать минимально возможную подстроку (ленивый алгоритм);
2. Искать максимально возможную подстроку (жадный алгоритм);
3. Искать все возможные подстроки.

Мое решение первым способом приведено выше.

Добавлено через 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
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
92
93
94
95
96
97
98
//Задаётся шаблон, в котором кроме букв латинского алфавита может присутствовать 
//знак "*", который в свою очередь равен либо пробелу,либо произвольным буквам 
//лат. алфавита. Подсчитать все возможные вхождения шаблона в строку. 
//Шаблон можно вводить и с консоли.
 
//==================================================================================
//  Программа ведет поиск соответствия шаблону слева направо с каждой позиции строки.
//  Для подстановки текста вместо звездочки используется жадный алгоритм.
//==================================================================================
#include <iostream>
#include <string>
#include <algorithm>
#include <iomanip>
 
typedef std::string       T_str;
typedef T_str::size_type  T_pos;
 
int  get_chislo_vxozhdeniy_podstrok_v_str
    (
        T_str substr,
        T_str str        
    )
{
    int count = 0;
    for(T_str::size_type  substr_find_pos = 0;; ++count)
    {
        T_str::size_type  substr_pos = str.find(substr, substr_find_pos);        
        if(substr_pos == T_str::npos) break;                
        substr_find_pos = substr_pos + 1;
        std::cout << "Позиция в строке "
                  << std::setw(2)
                  << substr_pos
                  << ": " 
                  << substr
                  << std::endl;
    }
    return count;
}
 
int  get_chislo_vxozhdeniy_shablona_v_str
    (
        T_str pattern,
        T_str str        
    )
{
    std::cout << std::endl;
 
    const char  METASYMBOL         = '*';
    int         metasymbols_total  = std::count
                                     (pattern.begin(), pattern.end(), METASYMBOL);
 
    if(metasymbols_total > 1)  return 0;    
    if(metasymbols_total == 0)
    {
        return get_chislo_vxozhdeniy_podstrok_v_str(pattern, str);
    }
 
    T_pos  metasymbol_pos  = pattern.find(METASYMBOL);
    T_str  pref            = pattern.substr(0, metasymbol_pos);
    T_str  suf             = pattern.substr(metasymbol_pos + 1);
    int    count           = 0;
 
    for(T_pos  pref_find_pos = 0;; ++count)    
    {
        T_pos  pref_pos = str.find(pref, pref_find_pos);
        if(pref_pos == T_str::npos) break; 
        T_pos  suf_pos = str.rfind(suf);
        if(suf_pos == T_str::npos
           || suf_pos < pref_pos + metasymbol_pos) break;                
        pref_find_pos = pref_pos + 1;        
        std::cout << "Позиция в строке "
                  << std::setw(2)
                  << pref_pos
                  << ": "                  
                  << str.substr(pref_pos, suf_pos + suf.length() - pref_pos)
                  << std::endl;
    }
    return count;
}
 
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите строку:" 
              << std::endl;
    T_str str;
    getline(std::cin, str);
    std::cout << "Введите шаблон:"               
              << std::endl;
    T_str pattern;
    getline(std::cin, pattern);
    
    std::cout << "Число вхождений шаблона в строку равно "
              << get_chislo_vxozhdeniy_shablona_v_str(pattern, str)
              << "."
              << std::endl;   
    return 0;
}
Добавлено через 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
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
//Задаётся шаблон, в котором кроме букв латинского алфавита может присутствовать 
//знак "*", который в свою очередь равен либо пробелу,либо произвольным буквам 
//лат. алфавита. Подсчитать все возможные вхождения шаблона в строку. 
//Шаблон можно вводить и с консоли.
 
//==================================================================================
//  Программа ведет поиск соответствия шаблону по строке слева направо, 
//  и с каждой позиции строки отыскивает все возможные подстроки, 
//  соответствующие шаблону.
//==================================================================================
#include <iostream>
#include <string>
#include <algorithm>
#include <iomanip>
 
typedef std::string       T_str;
typedef T_str::size_type  T_pos;
 
int  get_chislo_vxozhdeniy_podstrok_v_str
    (
        T_str substr,
        T_str str        
    )
{
    int count = 0;
    for(T_str::size_type  substr_find_pos = 0;; ++count)
    {
        T_str::size_type  substr_pos = str.find(substr, substr_find_pos);        
        if(substr_pos == T_str::npos) break;                
        substr_find_pos = substr_pos + 1;
        std::cout << "Позиция в строке "
                  << std::setw(2)
                  << substr_pos
                  << ": " 
                  << substr
                  << std::endl;
    }
    return count;
}
 
int  get_chislo_vxozhdeniy_shablona_v_str
    (
        T_str  pattern,
        T_str  str        
    )
{
    std::cout << std::endl;
 
    const char  METASYMBOL         = '*';
    int         metasymbols_total  = std::count
                                     (pattern.begin(), pattern.end(), METASYMBOL);
 
    if(metasymbols_total > 1)  return 0;    
    if(metasymbols_total == 0)
    {
        return get_chislo_vxozhdeniy_podstrok_v_str(pattern, str);
    }
 
    T_pos  metasymbol_pos  = pattern.find(METASYMBOL);
    T_str  pref            = pattern.substr(0, metasymbol_pos);
    T_str  suf             = pattern.substr(metasymbol_pos + 1);
    int    count           = 0;
 
    for(T_pos  pref_find_pos = 0; ; )    
    {
        T_pos  pref_pos = str.find(pref, pref_find_pos);
        if(pref_pos == T_str::npos) break;
 
        for(T_pos  suf_find_pos  = pref_pos + metasymbol_pos; ; ++count)
        {
            T_pos  suf_pos = str.find(suf, suf_find_pos);
            if(suf_pos == T_str::npos)
            {
                pref_find_pos = pref_pos + 1;
                break;
            }                    
            std::cout << "Позиция в строке "
                      << std::setw(2)
                      << pref_pos
                      << ": "                  
                      << str.substr(pref_pos, suf_pos + suf.length() - pref_pos)
                      << std::endl;            
            suf_find_pos = suf_pos + 1;
        }        
    }
    return count;
}
 
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите строку:" 
              << std::endl;
    T_str str;
    getline(std::cin, str);
    std::cout << "Введите шаблон:"               
              << std::endl;
    T_str pattern;
    getline(std::cin, pattern);
    
    std::cout << "Число вхождений шаблона в строку равно "
              << get_chislo_vxozhdeniy_shablona_v_str(pattern, str)
              << "."
              << std::endl;   
    return 0;
}
Yandex
Объявления
24.06.2010, 12:24     поиск всех вхождений шаблона в строку
Ответ Создать тему
Опции темы

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