将随机数插入到数组中,其中每个值都是通过 for 循环输入的
inserting a random number into an array where each value is being entered through a for-loop
//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] != ' '; 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
放在数组中的每个字符之后,而在循环之外时,我无法将其放置在数组的内容中。
建议?
有更好的方法来反转字符串,但除此之外,当你返回usrPass
的长度时,你会在函数的末尾丢弃newPass
,所以你不rand_NumOut
附加到char
数组并不重要。
如果您只想将随机数发送到 stdout,请在 return
语句之前添加 cout << rand_NumOut;
。
也许更好的方法是使用 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;
}
看它跑!
在 for 循环的末尾只需添加行
if(usrPass[i+1]==' ')
{
//code to insert rand_NumOut
//output rand_NumOut
}
相关文章:
- 通过for循环使用用户输入填充列表
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 如何根据用户在C++中的输入运行不同数量的 for 循环
- 在定义字符数组(井字游戏)的 for 循环中应用输入限制
- 多个输入输入 for 循环
- 如何在 for 循环中记录输入?
- 程序终止,状态为 -1073741510 在 for 循环的中间,将输入分配给二维数组
- 即使初始要求为 true,也不会输入 for 循环
- 使用用户输入(无矢量)从 For 循环打印图表
- C++ 通过 range for 循环将整数输入到矢量中;随机 0
- 使用 for 循环多次将数据输入到 txt 文件
- 如何在输入整数时中断 for 循环
- 使用 for 循环在数组中输入用户
- 在C++中使用 for 循环从用户输入中查找最大和最小整数
- 我如何将输入分配给在 for 循环中设置的映射功能
- 如何在 c++ 中使用 while 或 for 循环将用户输入的数字相加
- 如何存储用户输入到 for 循环中的值
- 如何查找用户使用 do/while、While 语句或 For 语句输入的几个整数的总和
- 如何使用 for 循环C++将不同的值输入到 2D 指针到指针数组中
- 动态设置for循环的初始化、条件和输入/递减