【发布时间】:2018-06-23 16:59:01
【问题描述】:
我正在尝试找到生成随机数字/字符数组的最快方法。
char *randomGet(int num) {
srand(time(NULL));
const char ab[37] = { "0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZ" };//Alphabet&Digit
char *targ = new char[num];
for (int i = 0; i < num; i++) {
strcat(targ, ab[rand() % 38]);
}
return targ;
}
到目前为止,我已经想出了这个,但它不起作用(char 类型的参数与 const char * 类型的参数不兼容)。 帮助我找到解决问题的最佳方法。泰。
【问题讨论】:
-
停止尝试使用
strcat。 -
开始使用std::string。
-
@NeilButterworth 是的,这也可以解决内存分配中的非一错误。 :-)
-
除了
main的开头之外,不要在任何地方调用srand(除非你知道自己在做什么,如果你试图在函数应该返回随机结果)。 -
更好的是,使用 C++ 提供的随机工具,而不是标准 C 库中的 srand 和 rand。