哈希算法之字符串随机生成

时间:2021-09-13 16:45:42

字符串随机生成代码(注:此部分也是改编网络上某个哥们儿的代码,一时找不到出处了,谁看到了请告知,我添加上引用,感谢尊重他人劳动成果):

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
  
#include <ctype.h>  
#include <time.h>  
  
#define STRINGSIZE 10  
#define STRINGCOUNT 1000  
//如果是在一个程序的循环中不断调用这个函数,那么是没有效果的虽然也是使用的系统的时间函数来初始化随机数发生器,但程序的  
//执行速度太快了,可能执行1000次循环返回的秒数都是一样的time返回时间戳  
/* 
void get_rand_str(char s[],int num) 
{ 
 //定义随机生成字符串表 
 char *str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 
 int i,lstr; 
 lstr = strlen(str);//计算字符串长度 
 srand((unsigned int)time((time_t *)NULL));//使用系统时间来初始化随机数发生器 
 
 for(i = 0; i < num-2; i++)          //按指定大小返回相应的字符串 
 { 
     s[i]=str[(rand()%lstr)]; 
 } 
 s[i++]='\n'; 
 s[i]='\0'; 
 printf("%s",s); 
} 
*/  
int main()  
{  
    FILE *fp1;          //定义文件流指针,用于打开读取的文件  
    char text[10];      //定义一个字符串数组,用于存储读取的字符  
    int i=0,j=0,lstr;  
    char *str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";  
    lstr = strlen(str);//计算字符串长度  
    fp1 = fopen("d:\\test.txt","r+");//只读写方式打开文件a.txt  
   //while(fgets(text,1024,fp1)!=NULL)//逐行读取fp1所指向文件中的内容到text中  
     srand((unsigned int)time((time_t *)NULL));//使用系统时间来初始化随机数发生器  
     for(j=0;j<STRINGCOUNT;j++)  
     {  
         for(i = 0; i < STRINGSIZE-2; i++)           //按指定大小返回相应的字符串  
         {  
             text[i]=str[(rand()%lstr)];  
         }  
         text[i++]='\n';  
         text[i]='\0';  
         fputs(text,fp1);//将内容写到fp1所指向文件中  
     }  
     
     fclose(fp1);//关闭文件a.txt,有打开就要有关闭