Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przypisanie losowych liczb do łańcucha znaków.

Ostatnio zmodyfikowano 2013-11-25 15:35
Autor Wiadomość
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.
P-97173
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.
P-97175
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:

C/C++
#include <iostream>
#include <cstdlib>
#include <time.h>

using namespace std;

class enigma
{
public:
    std::string tekst; // przechowuje tekst
    int ilosc_znakow = tekst.size(); // zmienna przechowywujaca liczbe znakow przechowywanych w tekscie
    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, }; // zakres znakow do losowania
    int tablica_liczb[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // zakres liczb do losowania
};

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?
 
P-97186
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.
P-97192
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ć.
P-97193
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?
P-97211
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'
P-97225
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.
P-97231
« 1 » 2
  Strona 1 z 2 Następna strona