Mój przepis (jak możesz to sam napisać):
1. Napisz funkcję zmianiającą znak na string składający się z zer i jedynek (np. string to_bin(char), ale lepiej poszukać w internecie ;)
2. Stwórz sobie string (będący szyfrem)
3. W pętli for (lub foreach) wysyłaj do funkcji to_bin(char) znaki, a zwrócony string dopisuj do szyfru operatorem +=
4. Takich pętli używaj do przeglądnia stringów:
string szyfr = "Hello";
// Pętla for z użyciem zwykłych liczb
for(int i=0; i<szyfr.size(); i++)
cout << szyfr[i];
// Z użyciem iteratorów
for(string::iterator it = szyfr.begin(); it != szyfr.end(); ++it)
cout << *it;
// Pętla foreach w stylu C++11
for(char &i : szyfr)
cout << i;
EDIT:
Napisałem taki kod :) Funkcja szyfruj() przyjmuje string i zwraca go w postaci bitowej (zera i jedynki)
Bitset to klasa reprezentująca bity: http://en.cppreference.com/w/cpp/utility/bitset
#include <iostream>
using namespace std;
#include <bitset>
string szyfruj(const string &txt) {
// Rezultat
string result;
// Zestaw bitów reprezentujący znak
bitset<sizeof(char) * 8> bits;
for(auto &i : txt) { // foreach (na każdy element)
// 'Orowanie' bitów ze znaku
bits |= i;
// Dopisanie nowych bitów i spacji
result += bits.to_string() + ' ';
// Reset zestawu bitów
bits.reset();
}
return result;
}
int main() {
// Mój tekst
string tekst;
// Pobranie funkcją getline()
getline(cin, tekst);
// Zapisanie szyfru
string szyfr = szyfruj(tekst);
cout << "\nPo szyfrowaniu\n" << endl;
cout << szyfr;
}