Cześć,
Piszę swoją pierwszą apkę okienkową w C++ Builderze 6 i na początek postanowiłem zrobić prosty generator ciągu znaków. W zamyśle chciałem losować liczby z przedziału 33-122 i w zależności od zaznaczonych checkboxów (dodatkowe opcje - duże litery, cyfry, znaki specjalne) decydować o przedziałach z których mają być losowane znaki, jednak musiałem poradzić sobie inaczej.
Aktualnie program losuje ciągi cyfr zamieniane na ASCII, jednak przy różnych długościach (2, 4, 8, 12, 16, 20, 21 , 24) dodawane są dodatkowe znaki, w ilości od jednego do dwóch. Nie mam pojęcia czym jest to spowodowane, może coś namotałem w kodzie:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
srand(time(0));
int dlugosc = Edit1->Text.ToInt();
char *output = new char[dlugosc];
int los, lotto;
if(dlugosc>5 && dlugosc<29)
{
if(!(CheckBox1->Checked) && !(CheckBox2->Checked) && !(CheckBox3->Checked))
{
for(int i=0;i<dlugosc;i++)
{
los = (rand()%26)+97; //male
output[i] = los;
Edit2->Text = output;
}
//Edit2->Text = output;
delete output;
}
if(CheckBox1->Checked && !(CheckBox2->Checked) && !(CheckBox3->Checked))
{
for(int i=0;i<dlugosc;i++)
{
lotto = rand()%2;
if(lotto==0)
{
los = (rand()%26)+97; //male
output[i] = los;
}
else
{
los = (rand()%26)+65; //duze
output[i] = los;
}
Edit2->Text = output;
}
delete output;
}
}
No i tak dalej dla wszystkich kombinacji checkboxów :D Co można na to poradzić?