C语言 微秒级时间生成随机字符串

2024-05-07 05:38

本文主要是介绍C语言 微秒级时间生成随机字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

秒级时间为种子,生成随机字符串

//产生长度为length的随机字符串
int genRandomString(int length,char* ouput)
{int flag, i;time_t t;t=time(NULL);Printf("%ld",t);srand((unsigned)t);for (i = 0; i < length - 1; i++){flag = rand() % 3;switch (flag){case 0:ouput[i] = 'A' + rand() % 26;break;case 1:ouput[i] = 'a' + rand() % 26;break;case 2:ouput[i] = '0' + rand() % 10;break;default:ouput[i] = 'x';break;}}return 0;
}

这种方法,在连续调用几次,生成多个随机文件名的场景中,文件名是相同的,不能达到目的,因为时间太短了。


微秒级时间生成随机字符串(限定字母数字)

//产生长度为length的随机字符串
int genRandomString2(int length,char* ouput)
{int flag, i;struct timeval tpstart;gettimeofday(&tpstart,NULL);srand(tpstart.tv_usec);for (i = 0; i < length - 1; i++){flag = rand() % 3;switch (flag){case 0:ouput[i] = 'A' + rand() % 26;break;case 1:ouput[i] = 'a' + rand() % 26;break;case 2:ouput[i] = '0' + rand() % 10;break;default:ouput[i] = 'x';break;}}return 0;
}

微秒级时间生成随机字符串

/*
* Descriptions:获取一个字节随机数
* Parameters: 
* 	[In]: None
*	[Out]: None
* Return:	返回随机数值0x00-0xFF
* Remarks:
*/
unsigned char get_one_byte_randrom()
{struct timeval tpstart;int r = 0;gettimeofday(&tpstart,null);srand(tpstart.tv_usec); r = rand()%255;return r;
}/*********************************************************************************** Function		 Rand_Get** Description	 获取随机数** Returns		 None*********************************************************************************/
void Rand_Get(unsigned char *pOutBuf,unsigned int nLen) 
{int i = 0;for(i=0;i<nLen;i++){pOutBuf[i] = get_one_byte_randrom();}
}

演示“伪随机数”的例子:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int get_randrom()
{int r = 0;srand( (unsigned)time( NULL ) );//初始化随机数r = rand()%255;return r;
}
int main(){printf("Hello World!\n");int ret = 0;while((ret = get_randrom())!=10){printf("%d\r\n",ret);}printf("while stop:(%d\r\n)",ret);return 0;
}
运行会发现随机数是批量相同的

这篇关于C语言 微秒级时间生成随机字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/966478

相关文章

PyQt5+Python-docx实现一键生成测试报告

《PyQt5+Python-docx实现一键生成测试报告》作为一名测试工程师,你是否经历过手动填写测试报告的痛苦,本文将用Python的PyQt5和python-docx库,打造一款测试报告一键生成工... 目录引言工具功能亮点工具设计思路1. 界面设计:PyQt5实现数据输入2. 文档生成:python-

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚