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; }