【问题标题】:How to save variable in for loop?如何在for循环中保存变量?
【发布时间】:2020-11-14 07:09:14
【问题描述】:

我已经做了一个随机密码生成器。在函数void passwordGenerator(int sizeOfPassword) 这里的问题是我正在尝试将程序生成的密码保存在sum中,但我不知道如何正确操作。

如何在sum中保存随机数字密码。

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

using namespace std;

void passwordGenerator(int sizeOfPassword)
{
    srand(time(NULL));

    char allChars[] = {"0123456789!@#$%^&*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
    char sum;
    for(int i = 0; i < sizeOfPassword; i++){
        sum = sum + allChars[rand()%sizeOfPassword];
    }
    std::cout<<sum<<std::endl;
}

int main()
{
    int sizeOutput;
    char wannaPlay = 'y';
    while(wannaPlay == 'y'){
        std::cout<<"Enter the size of password: ";
        std::cin>>sizeOutput;
        passwordGenerator(sizeOutput);
        std::cout<<"\nRun Again[y/n]? : ";
        std::cin>>wannaPlay;
    }
    return 0;
}

谢谢

【问题讨论】:

  • 您似乎想要保存一系列字符而不是单个字符。尝试使用 std::string 和 += 来添加每个字符。
  • @RetiredNinja 是的,我正在尝试获取数组序列
  • sum是单个字符,改成std::string,如果你想要一个数组,你可以在构建完字符串后使用sum.data()
  • @AlanBirtles std::string sum = sum + allChars[rand()%sizeOfPassword]; 喜欢这样吗?
  • @AndrewTruckle 我一定会调查的,但这与知识差距无关,而是与实践和经验有关。

标签: c++ for-loop random var


【解决方案1】:

你可以一个字母一个字母地显示:

void passwordGenerator(int sizeOfPassword)
{
    const char allChars[] = {"0123456789!@#$%^&*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
    for (int i = 0; i < sizeOfPassword; i++){
        std::cout << allChars[rand() % sizeof (allChars)];
    }
}

或构建一个字符串:

std::string passwordGenerator(int sizeOfPassword)
{
    const char allChars[] = {"0123456789!@#$%^&*abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
    std::string password;
    for (int i = 0; i < sizeOfPassword; i++){
        password += allChars[rand() % sizeof (allChars)];
    }
    return password;
}

【讨论】:

  • 谢谢你早些时候我使用了你提到的第一个代码,但我需要将输出存储在变量中,所以再次感谢你
猜你喜欢
  • 2020-04-21
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 2017-06-21
  • 1970-01-01
  • 2013-10-29
相关资源
最近更新 更多