ورود

View Full Version : حرفه ای: چطوري ميشه يك كلمه تصادفي بدون تكرار حروف توليد كرد ؟



ghasemweb
شنبه 25 دی 1389, 11:46 صبح
چه روشي براي ايجاد يك كلمه تصادفي بدون تكرار حرف هست ؟

Hadirj
شنبه 25 دی 1389, 11:52 صبح
چرا این تاپیگ یهو غیب شد!!:متفکر:



#include "stdafx.h"
#include <cstdlib>
#include <string>
#include <iostream>
#include <ctime>
using namespace std;
string randomString() {
string Possible;
string str;
for (int i = 65; i <= 90; i++) {
Possible += static_cast<char>(i);
Possible += static_cast<char>(i+32);
}
int numberOfPossibilities = Possible.length();
for (int i = 0; i < 5; i++) {
str += Possible[rand() % numberOfPossibilities];
}
return str;
}

//test barname
int main ()
{
srand(time(NULL));
for (int i = 0; i < 10; i++) {
cout << randomString() << endl;
}
cin.get();
return 0;
}

ghasemweb
شنبه 25 دی 1389, 15:30 عصر
چرا این تاپیگ یهو غیب شد!!:متفکر:
عدم توجه به قوانين سايت .

نوع داده string را خطا ميگيره .
undefined symbol 'str' in function

Hadirj
شنبه 25 دی 1389, 15:36 عصر
کامپایلرت چیه؟ من اجرا میکنم مشکل نداره. البته این تکراری بودن حروف رو چک نمیکنه باید داخل for یه if واسه چک کردن بزاری

ghasemweb
شنبه 25 دی 1389, 17:16 عصر
turbo cpp كار ميكنم.

Arcsinos
شنبه 25 دی 1389, 17:24 عصر
خب به جای string str از char str[20 استفاده کن ، همه ی دستورات کتابخانه ی string رو این نوع داده هم قابل پیادهه سازیه .

ghasemweb
شنبه 25 دی 1389, 18:32 عصر
با تشكر از شما اين كد اون چيزي بود كه ميخواستم كه همين الان نوشتم كه به صورت تابع است :


char word[100]; // motageire zakhireh kalameh tasadofi tolid shodeh az cpu

void randomStr(int len)
{
char c[1];
int m=1,k,i;
for(k=1;k<=len;k++)
{
while(1)
{
c[1]=random(26)+97;
int tek=1;
for(i=1;i<=k;i++)
if(c[1]==word[i])
tek=0;
if (tek==1)
break;
}
word[k]=c[1];
}
}