如何在for循环中保存变量?

How to save variable in for loop?

我做了一个随机密码generator.In函数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;
}

谢谢

您可能会逐个字母显示:

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;
}