生成随机字符串
2012-08-15 21:29
344 查看
原文出处:http://www.rosoo.net/a/201009/10195.html
估摸着以后极有可能使用到,于是写了一个生成随机字符串的函数。可以自定义生成规则,生成字符串长度。模仿了MS的函数风格,生成规则使用宏的或且规则,返回值使用了布尔型。这里使用布尔返回可能作用不大。直接贴代码吧,同样是两个文件。
RandomString.h
RandomString.cpp
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
估摸着以后极有可能使用到,于是写了一个生成随机字符串的函数。可以自定义生成规则,生成字符串长度。模仿了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
相关文章推荐
- Linux下生成随机数和随机字符串
- Python格式化字符串和随机生成ip地址
- Sql Server 生成随机字符串
- python 随机生成字符串
- php生成随机字符串
- MySQL中随机生成固定长度字符串的方法
- 随机生成字符串
- 利用Ruby生成长度为n的随机字符串
- Java 生成随机字符串
- Qt如何上传zip文件(两种形式),及随机生成规定长度的字符串的小方法
- 随机数和随机字符串的生成
- java 微信支付随机字符串生成方法
- java,url长链接生成短链接,短链接生成器,自定义字符串,对字符串md5混合KEY加密,根据短链接获得key值,不重复的随机数,不重复的随机字符串
- 生成规定长度的随机字符串
- JS生成随机字符串的多种方法
- C# 生成指定长度的随机字符串
- 关于SQL生成随机字符串
- Java指定长度随机生成的字符串,且这个字符串必须包含大小写字母和数字
- JS生成指定随机字符串
- 用js在前台及后台生成随机字符串