C++랜 덤 숫자 및 랜 덤 숫자 에 알파벳 생 성 사례

긴 말 안 할 게 요.그냥 코드 보 세 요~

#include <time.h>
#include <sys/timeb.h>
void MainWindow::slot_clicked()
{
QString strRand;
int length = 32;
QString strTmp = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
struct timeb timer;
ftime(&timer);
srand(timer.time * 1000 + timer.millitm);//    
for(int i = 0; i < length; i++ )
{
int j = rand()%35;
strRand += strTmp.at(j);
}
qDebug() << strRand;
추가 지식:C/C++난수 문자열 생 성(잘못된 방법 과 올 바른 방법)
먼저 잘못된 방법 을 말 하 다.생 성 된 10 개의 무 작위 수 는 같다.

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h> 
void make_rand_str(char *pchStr,int iLen)
{
  time_t tCurTime = 0; 
  int iRandValue = 0;
  int i = 0;
  unsigned int state = 0;
 
  if(NULL == pchStr || iLen <= 0)
  {
 return;
  }
  
  tCurTime = time(NULL);
  printf("
***%ld***%u**
",tCurTime ,(unsigned int)tCurTime); srand((unsigned int)tCurTime); iRandValue = rand(); snprintf(pchStr,iLen,"%d",iRandValue); printf("
====%s====
",pchStr); return; } int main() { char str[20]; int i = 0; for(i = 0; i < 10; i++) { memset(str,0,sizeof(str)); make_rand_str(str,sizeof(str)); // printf("
====%s====
",str); } return 0; }

정확 한 방법 으로 10 개의 다른 랜 덤 수 를 만 들 었 다.

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h> 
void make_rand_str(char *pchStr,int iLen,int num)
{
  time_t tCurTime = 0; 
  int iRandValue = 0;
  int i = 0;
  unsigned int state = 0; 
  if(NULL == pchStr || iLen <= 0)
  {
 return;
  }
  
  tCurTime = time(NULL);
  printf("
***%ld***%u**
",tCurTime ,(unsigned int)tCurTime); srand((unsigned int)tCurTime); for(i = 0;i < num; i++) { iRandValue = rand(); snprintf(pchStr,iLen,"%d",iRandValue); printf("
====%s====
",pchStr); } return; } int main() { char str[20]; memset(str,0,sizeof(str)); make_rand_str(str,sizeof(str),10); // 10 // printf("
====%s====
",str); return 0; }

이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.잘못 이 있 거나 완전히 고려 되 지 않 은 곳 이 있 으 면 댓 글 토론 을 환영 합 니 다.아 낌 없 는 가르침 을 바 랍 니 다.

좋은 웹페이지 즐겨찾기