ランダムに生成された文字列 rnd を cout で表示しようとすると、エンドラインしか出力されません。これはなぜですか、どうすれば修正できますか? ちなみに、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;
}