С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
Flyer
wtf!?
748 / 279 / 24
Регистрация: 21.05.2010
Сообщений: 732
1

Генерация строки

01.11.2011, 00:30. Просмотров 3634. Ответов 12
Метки нет (Все метки)

Есть ли функция для генерации рандомной строки из [a-z A-Z 0-9] символов или нужно самому такое счастье написать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2011, 00:30
Ответы с готовыми решениями:

Генерация в диапазоне C++
#include <stdlib.h> #include <stdio.h> #include <conio.h> #include...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки
Помогите исправить баг задача состоит в следующем :ввести строку и простроку...

Генерация штрих кодов
Кто нибудь сталкивался с генерацией штрих-кодов? Необходимо сгенерировать штрих...

Генерация вещественных чисел
Привет всем. У меня есть пять эдитов. В первые 2 эдита я ввожу. Минимальный ...

Таймер и генерация Image
Программа через таймер должна каждую секунду выгружать файл на форму, через...

12
Flyer
wtf!?
748 / 279 / 24
Регистрация: 21.05.2010
Сообщений: 732
01.11.2011, 01:52  [ТС] 3
та ну, этот рандом совсем не рандом. Повторяется пр каждом запуске. Не интересно совсем
0
LK
Заблокирован
01.11.2011, 01:54 4
что мешает самому написать в цикле random(); , имея перед глазами несколько примеров ?
0
Flyer
wtf!?
748 / 279 / 24
Регистрация: 21.05.2010
Сообщений: 732
01.11.2011, 02:00  [ТС] 5
я и написал, но рандом то не рандом. Вот запустил я допустим прогу, сгенировал например строку
9aka74r . Закрыл. Запустил опять и сгенерировалась опять та же 9aka74r
0
LK
Заблокирован
01.11.2011, 02:13 6
однако, в тех примерах єтого не проимходит, я так понимаю

там как бы и сложного/непонятного нет:
C++
1
2
3
4
for(int i=1;i<8;i++) // 8 - длина строки
{
int j = random(60);
...
- схема
0
Flyer
wtf!?
748 / 279 / 24
Регистрация: 21.05.2010
Сообщений: 732
01.11.2011, 02:19  [ТС] 7
да, в консольном примере нет. А у меня в vcl app такое имеется.
Вот попробуй у себя и посмотри
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// ---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
char randommmm[36] = {
    'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g',
    'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '1', '2', '3', '4',
    '5', '6', '7', '8', '9', '0'};
int x;
UnicodeString str;
 
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
}
 
// ---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender) {
    for (int i = 0; i < 7; i++) {
        x = random(37);
        str.Insert(randommmm[x], i);
        Edit1->Text = str;
    }
}
// ---------------------------------------------------------------------------
0
AntonChik
1086 / 584 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
01.11.2011, 07:01 8
Цитата Сообщение от Flyer Посмотреть сообщение
я и написал, но рандом то не рандом. Вот запустил я допустим прогу, сгенировал например строку
9aka74r . Закрыл. Запустил опять и сгенерировалась опять та же 9aka74r
таблеткой от такого служит использование randomize();
перед random();
эту фишку я еще с бэйсика на zx80 помню)
0
Flyer
wtf!?
748 / 279 / 24
Регистрация: 21.05.2010
Сообщений: 732
01.11.2011, 11:17  [ТС] 9
с randomize() перед random(37) получаю все одинаковые символы. То есть допустим длина стоит 7, получим например uuuuuuu

и еще, как с таким массивом (тот что приведен в коде выше) могло сгененерировать p``o7gi ?
0
mimicria
return (true);
1960 / 1097 / 219
Регистрация: 19.04.2011
Сообщений: 2,345
01.11.2011, 11:30 10
Цитата Сообщение от Flyer Посмотреть сообщение
с randomize() перед random(37) получаю все одинаковые символы.
Не перед каждым random, а в начале
C++
1
2
3
4
5
6
        randomize();
        for (int i = 0; i < 7; i++) {
                x = random(37);
                str.Insert(randommmm[x], i);
                Edit1->Text = str;
        }
Добавлено через 3 минуты
Цитата Сообщение от Flyer Посмотреть сообщение
как с таким массивом (тот что приведен в коде выше) могло сгененерировать p``o7gi ?
x = random(37);
При х=36 выход за границы массива. Соответственно надо
C++
1
x = random(36);
1
Flyer
wtf!?
748 / 279 / 24
Регистрация: 21.05.2010
Сообщений: 732
01.11.2011, 11:37  [ТС] 11
Спасибо, теперь все гуд. Написал 37, потому что в примере от LK с массивом в 45, было написано рандом(46)
0
rangerx
01.11.2011, 12:55
  #12

Не по теме:

В чём тайный смысл использования глобальных переменных в данном случае, если не секрет? :) Что мешает оформить всё вышенаписанное хотя бы в виде такой функции

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
UnicodeString GenerateAlphaNumStr_N(size_t n)
{
    static char randommmm[] =
    {
        'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g',
        'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', '1', '2', '3', '4',
        '5', '6', '7', '8', '9', '0'
    };
 
    UnicodeString result;
 
    for(size_t i = 0; i < n; ++i)
        result+= randommmm[random(sizeof(randommmm))];
 
    return result;
}
C++
1
2
3
4
5
void __fastcall TForm1::Button1Click(TObject *Sender) 
{
    // предполагается, что randomize уже где-то был вызван
    Edit1->Text = GenerateAlphaNumStr_N(7);
}

2
Flyer
wtf!?
748 / 279 / 24
Регистрация: 21.05.2010
Сообщений: 732
01.11.2011, 13:18  [ТС] 13
Та так, для пробы просто писал, потом хотел оформить в виде функции. Спасибо, что сделал вместо меня ^_^
0
01.11.2011, 13:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 13:18

Генерация HTML страниц
И снова здравствуйте. Пишу на билдере. У меня такая задача: программа...

Реализация и генерация лабиринта
И так решил написать прогу, генерация рандомого лабиринта. Проблема в том, что...

Генерация дробных чисел
Подскажите, кому не сложно, код для генерации в Edit случайного дробного числа....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru