生成随机字符串
来源:互联网 发布:知乎 回复集锦 编辑:程序博客网 时间:2024/06/14 02:15
原文出处:http://www.rosoo.net/a/201009/10195.html
估摸着以后极有可能使用到,于是写了一个生成随机字符串的函数。可以自定义生成规则,生成字符串长度。模仿了MS的函数风格,生成规则使用宏的或且规则,返回值使用了布尔型。这里使用布尔返回可能作用不大。直接贴代码吧,同样是两个文件。
RandomString.h
- #pragma once
- #define RdAllType 0x07 //大小写和数字
- #define RdNum 0x01 //数字
- #define RdLowercase 0x02 //小写
- #define RdUppercase 0x04 //大写
- static TCHAR szAllChar[] = _T("ABCDEFGHIJKLMNOPQRSTUVWXYZa
- bcdefghijklmnopqrstuvwxyz0123456789");
- bool fnRandomString(const int nLeng, TCHAR *RandStringInput, const int nType);
RandomString.cpp
- #include "stdafx.h"
- #include "RandomString.h"
- #include <stdlib.h>
- #include <time.h>
- bool fnRandomString(const int nLeng, TCHAR *RandStringInput,
- const int nType)
- {
- if (0 == nLeng)
- {
- return true;
- }
- if (nLeng < 0)
- {
- return false;
- }
- srand((unsigned int)time(NULL));
- bool bRet = false;
- int nMin = 0;
- int nMax = 62;
- switch(nType & RdAllType)
- {
- case RdAllType:
- break;
- case RdNum:
- nMin = 52;
- break;
- case RdNum | RdLowercase:
- nMin = 26;
- break;
- case RdNum | RdUppercase:
- nMin = 26;
- break;
- case RdUppercase:
- nMax = 25;
- break;
- case RdUppercase | RdLowercase:
- nMax = 51;
- break;
- case RdLowercase:
- nMin = 26;
- nMax = 51;
- break;
- default:
- return false;
- break;
- }
- int nRange = nMax – nMin;
- if (nType == (RdNum | RdUppercase))
- {
- int nNum = 0;
- for (int t = 0; t <= nLeng; t++)
- {
- nNum = nMin + rand()%nRange;
- if (nNum < 52)
- {
- nNum -= 26;
- }
- RandStringInput[t] = szAllChar[nNum];
- }
- }
- else
- {
- for (int t = 0; t <= nLeng; t++)
- {
- RandStringInput[t] = szAllChar[nMin + rand()%nRange];
- }
- }
- //int tt = 0;
- //while (RandStringInput[tt])
- //{
- // printf("%c ", RandStringInput[tt]);
- // tt++;
- //}
- return true;
- }
VS2010下编译通过。
其他精彩博文:
http://www.cnblogs.com/suny2006/archive/2006/12/01/578855.html
http://www.imkevinyang.com/2009/08/%E4%BD%BF%E7%94%A8%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%89%BE%E5%87%BA%E4%B8%8D%E5%8C%85%E5%90%AB%E7%89%B9%E5%AE%9A%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E6%9D%A1%E7%9B%AE.html
- 生成随机字符串
- 随机生成字符串
- 随机生成字符串
- 生成一个随机字符串
- 随机生成字符串
- 随机字符串生成
- C#随机生成字符串
- 生成随机字符串
- ASP生成随机字符串
- 生成随机字符串
- PHP生成随机字符串
- JavaScript 随机生成字符串
- Perl 生成随机字符串
- 随机字符串生成
- java 生成随机字符串
- 随机生成汉字字符串
- 生成随机字符串
- 生成随机字符串
- android从本地媒体库获取图片上传至服务器保存
- IFIX所有版本的操作系统支持
- linux下C获取MAC地址、ip等
- dfs遍历图 xtu-exam1015
- 程序员修炼之路(二)--近期的学习计划
- 生成随机字符串
- VB&VBA实现延时的几种方法
- JVM学习之:GC的算法的具体实现(垃圾收集器)
- iPhone开源项目汇总(更新版)
- IFIX SIM驱动说明
- 系统测试
- VC++ error error LNK2038
- 模拟器与真机下ffmpeg的编译方法(总结版)
- hdu 1300