用C ++将字符存储到字符串中

时间:2011-02-20 02:47:41

标签: c++ arrays string variables chars

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

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

}

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

3 个答案:

答案 0 :(得分:2)

添加

string s(sLength, ' ');
while (true)之前

,更改

cout << genRandom();

s[x] = genRandom();
在循环中

,删除cout << endl;语句。这将通过将字符放入s来替换所有打印。

答案 1 :(得分:1)

那么,这个怎么样?

    std::string s;
    for (int x = 0; x < sLength; x++)
    {
        s.push_back(genRandom());
    }

答案 2 :(得分: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;
    }

}