您的位置:首页 > 编程语言 > C语言/C++

How to get random string using C++ - 用 C++ 如何获取随机字符串

2009-07-26 13:56 756 查看
void CprjGetRandomStringTestDlg::OnBnClickedbtngetrandomstring()
{
	CString strRandom;
	int i;
	bool bReturn;
	CString strMsg;
	for(i = 0;i < 100;i++)
	{
		bReturn = GetRandomString(strRandom,strMsg);
		if(bReturn)
		{
			TRACE(_T("%s/r/n"),strRandom);
		}
		else
		{
			
		}
		
	}
}
//Defination
//bool GetRandomString(CString & strRandom, CString & strMsg, long lLengthMin = 5, long lLengthMax = 20, long lCharMin = 'a', long lCharMax = 'z');
bool CprjGetRandomStringTestDlg::GetRandomString(CString & strRandom, CString & strMsg, long lLengthMin, long lLengthMax, long lCharMin, long lCharMax)
{
	int i;
	char * pcharRandom;
	long lLength;
	char charRandom;
	//===============================================================================================
	if(lLengthMax < lLengthMin)
	{
		strMsg = _T("lLengthMax can't be less than lLengthMin");
		return false;
	}
	else if(lLengthMin <= 0 || lLengthMax <= 0)
	{
		strMsg = _T("lLengthMax and lLengthMin can't be less than or equal 0");
		return false;
	}
	
	//-----------------------------------------------------------------------------------------------
	if(lCharMax < lCharMin)
	{
		strMsg = _T("lCharMax can't be less than lCharMin");
		return false;
	}
	else if(lCharMin <= 0 || lCharMax <= 0)
	{
		strMsg = _T("lCharMax and lCharMin can't be less than or equal 0");
		return false;
	}
	//-----------------------------------------------------------------------------------------------
	//字符串长度范围 : 5 到 20(5 + (16 - 1)) 范围
	lLength = rand() % (lLengthMax - lLengthMin + 1) + lLengthMin;		
	
	//+1 : 多分配一个,最后一个字符必须是 /0 结束
	pcharRandom = (char*)malloc(lLength + 1);
	memset(pcharRandom,0,lLength + 1);
	
	for(i = 0;i < lLength;i++)
	{
		//字符范围	: 97 到 122(97 + (26 - 1)) 范围 a - z
		charRandom = rand() % (lCharMax - lCharMin + 1) + lCharMin;
		pcharRandom[i] = charRandom;
		
	}
	//-----------------------------------------------------------------------------------------------
	CString strTemp(pcharRandom);
	strRandom = strTemp;
	//-----------------------------------------------------------------------------------------------
	free(pcharRandom);
	strTemp.Empty();
	//-----------------------------------------------------------------------------------------------
	return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐