Const n1=15; n2=10; n3=12; type V=array[1..15] of string; procedure M_in(s:string; var a:V; n:integer); { ввод данных в массив } var i:integer; begin Writeln('Вводите по одному ',n,' элементов массива ',s); for i:=1 to n do Readln(a[i]) end;
procedure M_out(var a:V; n:integer; c:char); { выводит элементы, начинающиеся с указанного символа } var i:integer; begin Writeln('*** Слова на букву ',c,' ***'); for i:=1 to n do if a[i][1]=c then Writeln(a[i]); Writeln end;
var s1,s2,s3:V; begin M_in('S1',s1,n1); M_in('S2',s2,n2); M_in('S3',s3,n3); M_out(s1,n1,'В'); M_out(s2,n2,'Ц'); M_out(s3,n3,'А'); end.
n1=15;
n2=10;
n3=12;
type
V=array[1..15] of string;
procedure M_in(s:string; var a:V; n:integer);
{ ввод данных в массив }
var i:integer;
begin
Writeln('Вводите по одному ',n,' элементов массива ',s);
for i:=1 to n do Readln(a[i])
end;
procedure M_out(var a:V; n:integer; c:char);
{ выводит элементы, начинающиеся с указанного символа }
var i:integer;
begin
Writeln('*** Слова на букву ',c,' ***');
for i:=1 to n do
if a[i][1]=c then Writeln(a[i]);
Writeln
end;
var
s1,s2,s3:V;
begin
M_in('S1',s1,n1);
M_in('S2',s2,n2);
M_in('S3',s3,n3);
M_out(s1,n1,'В');
M_out(s2,n2,'Ц');
M_out(s3,n3,'А');
end.
//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <iterator>
#include <algorithm>
bool DigitFirst(const std::string& rhs, const std::string& lhs)
{
if (isdigit(rhs[0]) || isdigit(lhs[0]))
return rhs < lhs;
}
bool LetterFirst(const std::string& rhs, const std::string& lhs)
{
if (isalpha(rhs[0]) || isalpha(lhs[0]))
return rhs < lhs;
}
const std::string TrueSort(std::string str, bool(*comparator)(const std::string&
rhs, const std::string& lhs))
{
std::stringstream ss(str);
std::vector<std::string> vstr(std::istream_iterator<std::string>(ss), {});
std::sort(vstr.begin(), vstr.end(), comparator);
ss.clear();
std::copy(vstr.begin(), vstr.end(), std::ostream_iterator<std::string>(ss, " "));
return ss.str();
}
int main()
{
std::string first = "position total 12345 2jz asd512fgh";
std::string second = "year 10010 2018r r98k hello";
std::cout << TrueSort(first, DigitFirst ) << std::endl;
std::cout << TrueSort(second, LetterFirst);
}