Хранение символов в строках в C ++ - PullRequest
0 голосов
/ 20 февраля 2011

Итак, сейчас у меня есть этот код, который генерирует случайные буквы с заданным шагом, определяемым пользовательским вводом.

#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 ]

2 голосов
/ 20 февраля 2011

Просто добавьте

string s(sLength, ' ');

до while (true), изменить

cout << genRandom();

до

s[x] = genRandom();

в вашем цикле и удалите оператор cout << endl;. Это заменит всю печать, поместив символы в s.

1 голос
/ 20 февраля 2011

Ну как на счет этого?

    std::string s;
    for (int x = 0; x < sLength; x++)
    {
        s.push_back(genRandom());
    }
0 голосов
/ 20 февраля 2011
#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;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...