【发布时间】:2013-10-09 04:49:12
【问题描述】:
我一直在尝试制作一个字谜生成器,使用文本框(加密文本)作为输入,文本为“Hello World”,输出文本框(加密文本)接收文本:
“嗯哼
WWWWWWooooooorrrrrrrlllllllllllddddddddddd"。
我还有一个名为“anag_used”的文本框,它应该在要加密的字符串中记录使用的数字/位置。
我是不是太复杂了,还是有错误?
谢谢:)
这是我的代码:
void anagram()
{
string toanagram = marshal_as<string>(encryption_text->Text);
string out;
int k;
System::String^ rndstr;
System::String^ ktostr;
ostringstream kstr;
anag_used->Clear();
for (int i = 0; i < toanagram.size(); ++i)
{
anag_used->Text += "\n";
int rnd = 0 + rand() % toanagram.size();
ostringstream rndtostr;
rndtostr << rnd;
rndstr = gcnew System::String(rndtostr.str().c_str());
for (int l = 0; l < i; ++l)
{
if (anag_used->Lines[l] == rndstr)
{
k = rnd;
kstr << k;
ktostr = gcnew System::String(kstr.str().c_str());
for (System::String^ j = anag_used->Lines[l]; j == ktostr; k = 0 + rand() % toanagram.size())
{
kstr << k;
ktostr = gcnew System::String(kstr.str().c_str());
if (anag_used->Lines[l] == ktostr)
{
//Do someting if you want
}
else
{
out += toanagram[k];
anag_used->Lines[l] = ktostr;
}
}
}
else
{
out += toanagram[i];
anag_used->Lines[i] = rndstr;
}
}
}
encrypted_text->Text = marshal_as<System::String^>(out);
}
编辑:找到一个更简单的工作代码
#include <algorithm>
.
string toanagram = marshal_as<string>(encryption_text->Text);
sort(toanagram.begin(), toanagram.end());
encrypted_text->Text = marshal_as<System::String^>(toanagram);
【问题讨论】:
-
你得到了什么输出,你期望什么输出?我还没有开始看代码,因为问题不清楚。
-
我原以为这个词会混淆(字谜),例如Hello World = lelo oWrHdl
标签: c++ string for-loop anagram