Для групповых операций с файлами используются маски имен файлов. маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы:
символ «? » (вопросительный знак) означает ровно один произвольный символ.
символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность.
в каталоге находится 6 файлов:
adobe.xls
idol.xlsx
london.xls
adobe.xml
odor.xlsx
sdoba.xls
определите, по какой из масок из них будет отобрана указанная группа файлов:
adobe.xls
idol.xlsx
odor.xlsx
sdoba.xls
1) ? do*.xls
2) ? do? *.xls*
3) *do*.x*
4) ? do? .xls*
#include <iostream>
#include <vector>
using namespace std;
template<class Iter, class T>
bool bin_s(const Iter begin, const Iter end, const T& val)
{
Iter i = std::lower_bound(begin, end, val);
if (i != end && !(val < *i))
return true;
else
return false;
}
int main()
{
size_t N, M;
cin >> N >> M;
vector<int> v1(N);
vector<int> v2(M);
for (size_t i = 0; i < N; ++i)
cin >> v1[i];
for (size_t i = 0; i < M; ++i)
{
cin >> v2[i];
if ( bin_s(v1.begin(), v1.end(), v2[i]) )
cout << "YES" << endl;
else
cout << "NO" << endl;
}
}
{ Вариант a }
PROGRAM Solution(INPUT, OUTPUT);
VAR
Str: STRING;
Str1: STRING;
Str2: STRING;
Str3: STRING;
TempStr: STRING;
BEGIN
WRITE('Введите строку: ');
READLN(Str);
Str1 := COPY(Str, 1, LENGTH(STR) DIV 3);
Str2 := COPY(Str, LENGTH(STR) DIV 3 + 1, (LENGTH(STR) DIV 3));
Str3 := COPY(Str, (LENGTH(STR) DIV 3) * 2 + 1, LENGTH(STR));
WRITELN(Str2 + Str3 + Str1);
END.
{ Вариант b }
PROGRAM Solution(INPUT, OUTPUT);
VAR
Str: STRING;
Str1: STRING;
Str2: STRING;
Str3: STRING;
TempStr: STRING;
BEGIN
WRITE('Введите строку: ');
READLN(Str);
Str1 := COPY(Str, 1, LENGTH(STR) DIV 3);
Str2 := COPY(Str, LENGTH(STR) DIV 3 + 1, (LENGTH(STR) DIV 3));
Str3 := COPY(Str, (LENGTH(STR) DIV 3) * 2 + 1, LENGTH(STR));
WRITELN(Str3 + Str1 + Str2);
END.