21xrx.com
2024-11-05 17:25:50 Tuesday
登录
文章检索 我的文章 写文章
C++生成随机字符串
2023-06-27 19:12:27 深夜i     --     --
C++ 生成 随机字符串 随机数 字符串处理

C++是一门强大的编程语言,其丰富的函数和库使得开发人员可以轻松实现各种操作。例如,生成随机字符串,C++提供了多种方式和函数可以实现。

在C++中,使用rand()函数可以生成随机数。可以利用随机数生成随机字符串。下面是一个生成指定长度随机字符串的代码:


#include <iostream>

#include <cstdlib>  // 预定义的 rand() 函数

using namespace std;

int main(){

  const char* CHARS = "0123456789"

            "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

            "abcdefghijklmnopqrstuvwxyz";

  string random_str = "";

  int length = 10; // 定义字符串长度为10

  for (int i = 0; i < length; ++i) {

    random_str += CHARS[rand() % (sizeof(CHARS) - 1)];

  }

  cout << "生成的随机字符串为:" << random_str << endl;

  return 0;

}

代码中,首先定义了一个字符集,包含大小写字母和数字。然后,在定义的字符串random_str中,循环生成随机字符,添加到random_str中。最后输出生成的随机字符串。

除了上述方式,还可以使用 C++11中的随机数库实现。具体实现方法如下:


#include <iostream>

#include <random>  // C++11 随机数库

#include <string>

using namespace std;

string generate_random_string(const int length) {

  const char* CHARS ="0123456789"

           "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

           "abcdefghijklmnopqrstuvwxyz";

  thread_local static std::mt19937 rg{std::random_device{}()};

  thread_local static std::uniform_int_distribution<int> pick(0, sizeof(CHARS) - 2);

  string random_string(length, 0);

  for(int i = 0; i < length; ++i) {

    random_string[i] = CHARS[pick(rg)];

  }

  return random_string;

}

int main(){

  cout << "生成的随机字符串为:" << generate_random_string(10) << endl;

  return 0;

}

这段代码相比于第一个示例,使用了std::mt19937和std::uniform_int_distribution类型。两者结合使用可以直接生成随机数。将字符串生成函数放在一个函数中,传入生成字符串的长度即可。

总结来说,C++提供了多种生成随机字符串的方式和函数,让开发人员可以轻松实现各种需求。通过使用随机字符串可以提高代码的安全性和可靠性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复