当我尝试用 cout 显示随机生成的字符串 rnd 时,我只得到 endlines 作为输出。为什么会这样,我该如何解决?附带说明一下,while 语句会创建一个无限循环。我没有正确比较字符串吗?我正在使用 g++ 编译器。
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
string str;
string rnd;
int x;
cout << "What do you want the string to be?" << endl;
cin >> str;
srand(1);
//assign the initial random string
for(int i = 0; i < str.size(); i++)
{
x = rand() % 26 + 97;
rnd[i] = static_cast<char>(x);
}
cout << rnd << endl;
//change individual characters of the string rnd until rnd == str
while(str != rnd)
{
for(int i = 0; i < str.size(); i++)
{
if (rnd[i] == str[i])
{
continue;
}
else
{
x = rand() % 26 + 97;
rnd[i] = static_cast<char>(x);
}
}
cout << rnd << endl;
}
return 0;
}