#include <iostream>
#include <fstream>
#include <string>
#include <vector>



const std::wstring alpha = L"абвгдеёжзийклмнопрстуфхцчшщъыьэюя";

typedef std::vector<std::size_t> codeword;



void string_to_codeword(const std::wstring &str, codeword &codes)
{
	for (auto ch : str)
	{
		std::size_t code = alpha.find(ch);
		if (code != std::wstring::npos)
			codes.push_back(code);
	}
}

void codeword_to_string(const codeword &codes, std::wstring &str)
{
	std::wstring tmp;
	for (auto code : codes)
	{
		std::wcout << L"sym: " << alpha[code] << std::endl;	
		str += alpha[code];
		tmp += alpha[code];
	}
	std::wcout << tmp << std::endl;
}

void encrypt(codeword &src, codeword &dest)
{

}

int main()
{
	std::wstring s = L"абвгде";
	codeword codes;

	string_to_codeword(s, codes);
	for (const auto code : codes)
		std::cout << code << " ";
	std::cout << std::endl;


	std::wstring result;
	codeword_to_string(codes, result);
	std::wcout << result << std::endl;
}
