1. Так как количество байт и бит должно быть одинаковым, у нас нет возможности кодировать числа и буквы по-разному. 2. Всего тогда получается алфавит из 26 + 10 = 36 символов. 3. Нам нужно узнать какой объем информации несет 36 символов. Округляем вверх до 64 (степень двойки). 64 = 2 в 6-ой. Значит, один символ кодируется 6-ю битами. 4. Далее, минимальная ячейка у нас - 1 байт. Половинчатые байты теоретически наверное могут быть, если у нас есть специальный тип данных "номер". Но скорее всего придется смирится с потерей места и закодировать 1 символ 1 байтом. 5. 1 номер = 1 символ * количество символов = 14 байт. 6. 14 байт * 50 номеров = 700 байт.
2. Всего тогда получается алфавит из 26 + 10 = 36 символов.
3. Нам нужно узнать какой объем информации несет 36 символов. Округляем вверх до 64 (степень двойки). 64 = 2 в 6-ой. Значит, один символ кодируется 6-ю битами.
4. Далее, минимальная ячейка у нас - 1 байт. Половинчатые байты теоретически наверное могут быть, если у нас есть специальный тип данных "номер". Но скорее всего придется смирится с потерей места и закодировать 1 символ 1 байтом.
5. 1 номер = 1 символ * количество символов = 14 байт.
6. 14 байт * 50 номеров = 700 байт.
#include <vector>
#include <boost/algorithm/string.hpp>
using namespace std;
void reverseWords(string& inputStr, vector<string>& output){
vector<string> input;
boost::split(input, inputStr, [](char c){return c == ' ';});
for(auto& word : input){
reverse(word.begin(), word.end());
output.push_back(word);
}
}
int main(){
string inputStr;
vector<string> output;
cout << "enter some string: " << endl;
getline(cin, inputStr);
cout << endl;
reverseWords(inputStr, output);
cout << "result: " << endl;
for(auto const& word : output){
cout << word << ' ';
}
cout << endl;
return 0;
}