0

所以现在我有这个代码,它以用户输入确定的增量生成随机字母。

#include <iostream>
#include <string>
#include <cstdlib>

using namespace std;

int sLength = 0;
static const char alphanum[] =
"0123456789"
"!@#$%^&*"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";

int stringLength = sizeof(alphanum) - 1;

char genRandom()
{
    return alphanum[rand() % stringLength];
}

int main()
{
    cout << "What is the length of the string you wish to match?" << endl;
    cin >> sLength;
    while(true)
    {
        for (int x = 0; x < sLength; x++)
        {
            cout << genRandom();
        }
        cout << endl;
    }

}

我正在寻找一种将第一个(用户定义的数量)字符存储到一个字符串中的方法,我可以用它来与另一个字符串进行比较。任何帮助将非常感激。

4

3 回答 3

2

只需添加

string s(sLength, ' ');

之前while (true),改变

cout << genRandom();

s[x] = genRandom();

在您的循环中,并删除该cout << endl;语句。这将通过将字符放入s.

于 2011-02-20T02:51:36.947 回答
1

那么,这个怎么样?

    std::string s;
    for (int x = 0; x < sLength; x++)
    {
        s.push_back(genRandom());
    }
于 2011-02-20T02:51:56.433 回答
0
#include<algorithm>
#include<string>
// ...

int main()
{
    srand(time(0));  // forget me not
    while(true) {
        cout << "What is the length of the string you wish to match?" << endl;
        cin >> sLength;
        string r(sLength, ' ');
        generate(r.begin(), r.end(), genRandom);
        cout << r << endl;
    }

}
于 2011-02-20T03:15:11.837 回答