#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <string>
using namespace std;
int main(int argc, char **argv)
{
string allcode = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
srand(time(NULL));
int l = 8; //指定的新字符串长度
string s; //新组成的随机字符串
char cc; //被抽中的字符
for (int i=0;i<l;i++)
{
srand(time(NULL));
int randNum = rand() % allcode.length();
cc = letters[randNum];
s = s + cc;
}
cout << s << endl;
// 为啥 s 是一串重复的字符串?
另外一个问题是,观察到 srand(time(NULL))的值是 1 秒内不会变的(在我用的电脑和系统上是这样),
如果一秒内有很多次循环,这个似乎不太好,应该如何更“真”的保证和上次循环有不同随机?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.