dejmien Temat założony przez niniejszego użytkownika |
Przypisanie losowych liczb do łańcucha znaków. » 2013-11-23 17:05:19 Witam.
Potrzebuję kilka rad. Chodzi o to żeby program dopisywał tekstowi znaków przechowywanemu w string i którego wprowadził użytkownik, losowe liczby od 0-9 i losowe znaki a -z. Np. użytkownik wprowadza tekst np: To jest przykladowy tekst. I program każdej z cyfr przypisze losową cyfrę z zakresu a-z lub 0 - 9.
1. Co trzeba zrobić żeby konsola obsługiwała spacje przy wpisywaniu tekstu przez użytkownika.
2. Za losowanie będzie odpowiedzialna funkcja rand tak?
Może ktoś dać jakieś wskazówki? Nie chcę całego kodu tylko potrzebuję jakiegoś bodźca co mnie naprowadzi na cel. |
|
Mitu |
» 2013-11-23 17:08:22 1. Skorzystaj z funkcji getline() 2. Tak.
Nie rozumiem pytania... Podaj przykład wejścia i wyjścia.
|
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-11-23 18:17:16 Ehh dobra, więc ten program ma wyglądać tak: Ma to być maszyna szyfrująca polegająca na tym że: Użytkownik wpisuje jakiś tekst, bardzo ważna jest tutaj spacja! Następnie program losuje do każdej cyferki tego zdania losowy znak z zakresu(od a do z i od o do 9. Np. może to wyglądać tak. Gracz wpisuje tekst: ,, dom ''. Tak więc program losuje te znaki z zakresu co podałem wyżej i może to wyglądać tak po losowaniu: d =1, o = z, m =3. I na koniec doda to wszystko generując zaszyfrowany kod np. d + 1, o + z, m + 3 i wyjdzie z tego jakiś kod np. 3gy. Idzie mi to dość topornie ale mam pewien pomysł tylko potrzebuję pomocy. Najpierw określam to co będzie mi potrzebne i jak narazie mam to: #include <iostream> #include <cstdlib> #include <time.h>
using namespace std;
class enigma { public: std::string tekst; int ilosc_znakow = tekst.size(); string tablica_znakow[] = { a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, r, s, t, u, w, z, }; int tablica_liczb[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; };
Może teraz to opisze: - string tekst ma za zadanie przechowywać tekst, który wpisze użytkownik. - int ilość znaków ma za zadanie przechowywać ilość znaków z której składa się dany tekst. Będzie mi to później potrzebne żeby wylosować konkretną ilość znaków. - tablica znakow i tablica liczb określa bazę z której będą losowane te całe znaki które później będą przypisane do tekstu. Możecie mi powiedzieć czy dobrze kombinuje? Jakieś porady? |
|
bnk120 |
» 2013-11-23 18:35:02 To tak, skoro ma losować dowolny znak od a do z i od 0 do 9 to stwórz tablicę char i tam wstaw te znaki. Po co masz definiować dwie tablice? Co do generowania kodu szyfrującego, nie lepiej Ci po prostu wpisany tekst zapisywać do tablicy i potem pętlą zamienić ten tekst na wygenerowany kod? Możesz jeszcze użyć funkcji replace z biblioteki string.
|
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-11-23 18:38:26 O nie wiedziałem że w char można tak przechowywać... tak więc użyje zmiennej char.
No tak jak mówisz było by prościej, ale moje zadanie przy tak jak pisałem i będę musiał to tak zrobić. |
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-11-23 20:56:32 A wie ktoś jak wylosować dane z tej tablicy?
I o co chodzi z tym żeby dodać A + wylosowany znak żeby utworzyć zaszyfrowany kod? |
|
Mitu |
» 2013-11-23 22:38:46 Zmienna która zawiera znak 'A' tak naprawdę zawiera wartość ASCII tego znaku, więc np. 'A' + 3 To to samo co: 65 + 3 Czyli wynikiem jest: 68 równoważne z 'D' |
|
dejmien Temat założony przez niniejszego użytkownika |
» 2013-11-23 23:03:25 Acha o to chodzi... a to kompilator będzie umiał sam dodać znaki? tzn. że ma jakąś funkcje pokazującą kod znaku i dodawania go? Coś jak sizeof pokazujący rozmiar zmiennej. |
|
« 1 » 2 |