生成隨機(jī)數(shù)的一段代碼。引來一片噓噓,刪掉了一句,呵呵,頂不住了。可是我覺得夠用就行了為原則。
改進(jìn)一下,提高種子的精度,完了引入os的radom設(shè)備
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/time.h>
void init_random()
{
unsigned int ticks;
struct timeval tv;
gettimeofday(&tv,NULL);
ticks = tv.tv_sec + tv.tv_usec;
srand(ticks);
}
//ibuflen---需要生成的隨即串的長度
int genrandstr(char* pszbuf,int ibuflen)
{
static const char sourchar[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
init_random();
for(int i=0;i<ibuflen;i++)
{
int x = rand()/(RAND_MAX/(sizeof(sourchar)-1));
pszbuf[i] = sourchar[x];
}
pszbuf[ibuflen] = '\0';
}
int main(int argc, char* argv[])
{
printf("begin randstr...,RAND_MAX=%d\n",RAND_MAX);
char buf[9] = {0};
genrandstr(buf,8);
printf("randstr=%s\n",buf);
genrandstr(buf,8);
printf("randstr=%s\n",buf);
genrandstr(buf,8);
printf("randstr=%s\n",buf);
genrandstr(buf,8);
printf("randstr=%s\n",buf);
genrandstr(buf,8);
printf("randstr=%s\n",buf);
genrandstr(buf,8);
printf("randstr=%s\n",buf);
printf("end randstr...\n");
return 0;
}