• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie Kryptologia Szyfr Tablica ASCII

Object Storage Arubacloud
0 głosów
925 wizyt
pytanie zadane 6 maja 2015 w C i C++ przez veryhotshark Obywatel (1,620 p.)
Witam wymysliłem taki kod z tablicą ASCII mianowicie chce zebyscei mi pomogli napisac kod do szyfru ,algorytm . Chce zeby aplikacja w konsoli działała tak że po napiszaniu zdania np. "mam 22 lata" to mi po enterze zasyfrowalo.

moj pomysł na szyfr jest taki że cyfra która odpowiada danej literce np . duze "A" to liczba 65 i chce numer 65 zamienic na numer w systemie dwojkowym czyli 1000001  i gdy pisze literke A to chce zeby pojawiła się cyfra 1000001 tylko ze nie wiem jak napisac kod bardzo byłbym wdzeiczny gdybyscie mi mogli pomóc wystarczy tylko przykład a ja sam dokoncze. dziekuje

2 odpowiedzi

+1 głos
odpowiedź 6 maja 2015 przez Radfler VIP (101,030 p.)
edycja 6 maja 2015 przez Radfler

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;
}
+1 głos
odpowiedź 6 maja 2015 przez niezalogowany
Powinieneś zrobić tak:

1. Deklaracja zmiennej typu string

2. Wycinanie znaku po znaku za pomocą SubString()

3. Konwersja znaku do zmiennej int (dzieki temu otrzymamy kod ASCII)

itd...

tu masz pomocny link:

http://4programmers.net/C/Konwersje_int_na_string_i_string_na_int

Podobne pytania

0 głosów
1 odpowiedź 1,129 wizyt
pytanie zadane 29 kwietnia 2015 w C i C++ przez veryhotshark Obywatel (1,620 p.)
0 głosów
1 odpowiedź 721 wizyt
pytanie zadane 27 maja 2015 w C i C++ przez LogicznyMat Użytkownik (940 p.)
0 głosów
1 odpowiedź 580 wizyt
pytanie zadane 17 września 2019 w SPOJ przez coderCpp93 Gaduła (4,200 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...