gpt4 book ai didi

c++ - 将随机数插入数组,其中每个值都通过 for 循环输入

转载 作者:行者123 更新时间:2023-11-27 23:24:21 25 4
gpt4 key购买 nike

//Encryption of pass-phrase
char passReverse(char usrPass[]){
char newPass[pSize];
int value;
int randNum;
int rand_NumOut;

//Random number generation
srand(time(0));
randNum = rand();
rand_NumOut = ((randNum %12)+2);
//Reversing array for-loop
for (int i=0; i<pSize && usrPass[i] != '\0'; i++){
char letter = usrPass[i];
newPass[i] = letter;
int maxVal = strlen(usrPass);
if (maxVal >=0){
newPass[i] = usrPass[(maxVal-1)-i];
}
cout << newPass[i];
value = i;
}
return value;
}

理想情况下,rand_NumOut 将在最后一个循环之后立即放置在 newPass[] 中。

我遇到的问题是,当放置在 for 循环中时,rand_NumOut 当然会放置在数组中的每个字符之后,而当在循环,我不能把它放在数组的内容中。

建议?

最佳答案

有更好的方法来反转字符串,但除此之外,您将丢弃 newPass在函数末尾返回 usrPass 的长度时, 所以你不附加 rand_NumOut 并不重要到 char大批。

如果您只想将随机数发送到标准输出,则添加 cout << rand_NumOut;return 之前声明。

也许更好的方法是使用 C++ 的 std::string类:

#include <cstdlib>
#include <ctime>
#include <iostream>
#include <sstream>

std::string passReverse(const std::string& userPass)
{
srand(time(0));
const int randNum = rand();
const int rand_NumOut = randNum % 12 + 2;

std::string reversed(userPass.rbegin(), userPass.rend());

std::ostringstream oss;
oss << reversed << rand_NumOut;
return oss.str();
}

int main()
{
std::cout << passReverse("password") << std::endl;
}

See it run!

关于c++ - 将随机数插入数组,其中每个值都通过 for 循环输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10458836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com