Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Random Symbol Generator [C++]

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
16 Июл 2017
Сообщения
502
Реакции
85
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Легко и просто.
Код:
Expand Collapse Copy
#include <iostream>
using namespace std;

int main()
{
    char p[81]; // Создаем переменную char которая будет хранить наши символы, с учетом +1
    char a[] = "abcdefghijklmnopqrstuvwxyz1234567890"; // Создаем переменную хранящую символы для генерации

    for (int i = 0; i <= 80; i++) // Создаем наш цикл for, он нужен нам для повторения генерации
        p[i] = a[rand() % 36]; // Сам код генерации, кто не понял поясню ниже

    p[80] = '\0'; // Указываем что 80 сгенерированный символ равен 0
    cout << p << endl; // Выводим наш ключ в консоль

    system("pause"); // Просто останавливаю программу, чтобы не закрылась
    return 0; // По факту Visual Stuido может само вернуть 0, но так будет правильнее

}

Ответы:
  • +1 потому-что rand() генерирует на +1 больше.
  • 80ый символ равен 0, потому-что без этого он будет заменен на нечитаемый.
  • p = a[rand() % 36] - переменная хранящая число символов[генерируемый символ] = переменная хранящая все символы для генерации[генерировать() % сколько генерировать]
 
Легко и просто.
Код:
Expand Collapse Copy
#include <iostream>
using namespace std;

int main()
{
    char p[81]; // Создаем переменную char которая будет хранить наши символы, с учетом +1
    char a[] = "abcdefghijklmnopqrstuvwxyz1234567890"; // Создаем переменную хранящую символы для генерации

    for (int i = 0; i <= 80; i++) // Создаем наш цикл for, он нужен нам для повторения генерации
        p[i] = a[rand() % 36]; // Сам код генерации, кто не понял поясню ниже

    p[80] = '\0'; // Указываем что 80 сгенерированный символ равен 0
    cout << p << endl; // Выводим наш ключ в консоль

    system("pause"); // Просто останавливаю программу, чтобы не закрылась
    return 0; // По факту Visual Stuido может само вернуть 0, но так будет правильнее

}

Ответы:
  • +1 потому-что rand() генерирует на +1 больше.
  • 80ый символ равен 0, потому-что без этого он будет заменен на нечитаемый.
  • p = a[rand() % 36] - переменная хранящая число символов[генерируемый символ] = переменная хранящая все символы для генерации[генерировать() % сколько генерировать]
Зачем тебе массив чаров с символами? 'a' + rand
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Зачем тебе массив чаров с символами? 'a' + rand
Если я правильно тебя понял:
char a хранит в себе символы, которые мы хотим видеть при геренариции, а массив дабы я мог указать сколько угодно символов
Если не то, напиши в телеграм или ЛС
 
Таблицу ASCII релегия не позволяет использовать?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
#include <random>

std::string IUtilit::RandomString(int length /*= 0*/)
{
    static constexpr char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZbcdefghijklmnopqrstuvwxyz1234567890";
    static std::random_device rd;
    static std::uniform_int_distribution<> dist(0, _countof(alphabet) - 2);
    static std::uniform_int_distribution<> dist_len(5, 15);
    std::string result;

    if (length == 0)
        length = dist_len(rd);

    for (int i = 0; i < length; i++)
        result.push_back(alphabet[dist(rd)]);

    return result;
}
 
Назад
Сверху Снизу