From 1a9035dd527c0582e36d702e4df01d38dbfbc5ed Mon Sep 17 00:00:00 2001 From: Asrith-ufl Date: Fri, 4 Oct 2024 00:00:32 -0400 Subject: [PATCH] Update string.cpp Added symbol function --- src/modules/string.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/modules/string.cpp b/src/modules/string.cpp index 83fc0f2b..26f00aca 100644 --- a/src/modules/string.cpp +++ b/src/modules/string.cpp @@ -290,4 +290,26 @@ std::string numeric(GuaranteeMap&& guarantee, const unsigned length, bool allowL return firstChar + generateStringWithGuarantee(guarantee, targetCharacters, length - 1); } } + +std::string symbol(int length) { + const std::string specialChars = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"; + std::string result; + std::mt19937 generator(static_cast(std::time(nullptr))); + std::uniform_int_distribution<> distribution(0, specialChars.size() - 1); + + for (int i = 0; i < length; ++i) { + result += specialChars[distribution(generator)]; + } + + return result; } + +std::string symbol(int minLength, int maxLength) { + std::mt19937 generator(static_cast(std::time(nullptr))); + std::uniform_int_distribution<> lengthDistribution(minLength, maxLength); + int length = lengthDistribution(generator); + return symbol(length); +} + +} +