Visual C++ 6.0生成随机字符2

Visual C++ 6.0生成随机字符2

函数名:randommakes(char *optionsnumber)

optionsnumber形参参数: 

T生成一个大写字母t生成一个小写字母
N生成一个数字n生成一个数字
S生成一个符号s生成一个符号
G随机生成一个大、小写字母或数字g随机生成一个大、小写字母或数字
M随机生成一个大写字母或数字m随机生成一个小写字母或数字
X随机生成一个字符(大小写字母、数字、符号)x随机生成一个字符(大小写字母、数字、符号)
NULL未指定生成的字符格式""未指定生成的字符格式

 

该函数只根据形参参数字符的个数进行生成随机数,代码相对比上一篇的随机数函数稍微精简一些,功能基本一样

函数原型:

#include <stdlib.h>
#include <time.h>

char *randommakes(char *optionsnumber)
{
    srand((unsigned)time(NULL));//复位和初始化随机状态
    int optionsnumbers=0;//记录参数的个数
    int branchselect;//随机分支选择
    char *randomsuc;//存储随机生成的字符
    randomsuc=(char *)malloc(sizeof(char));
    while(1)//随机生成字符的while循环
    {
        if(optionsnumbers>2700)
        {
                printf("Options Out!\n");
                randomsuc=NULL;
                break;
        }
        else if(optionsnumber[optionsnumbers]=='\0')//判断形参是否结束了
        {
            randomsuc[optionsnumbers]='\0';//在randomsuc变量末尾加入结束符'\0'
            break;
        }
        else
        {
            switch(optionsnumber[optionsnumbers])//根据提取的形参选择分支
            {
            case 'T':
                randomsuc[optionsnumbers]='A'+ rand()%26;
                break;
            case 't':
                randomsuc[optionsnumbers]='a'+ rand()%26;
                break;
            case 'S':
                randomsuc[optionsnumbers]='!'+ rand()%15;
                break;
            case 's':
                randomsuc[optionsnumbers]='!'+ rand()%15;
                break;
            case 'N':
                randomsuc[optionsnumbers]='0'+ rand()%10;
                break;
            case 'n':
                randomsuc[optionsnumbers]='0'+ rand()%10;
                break;
            case 'G':
                branchselect='1'+ rand()%3;//随机选择一个分支
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '3':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                }
                break;
            case 'g':
                branchselect='1'+ rand()%3;//随机选择一个分支
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '3':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                }
                break;
            case 'M':
                branchselect='1'+ rand()%2;//随机选择一个分支
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                }
                break;
            case 'm':
                branchselect='1'+ rand()%2;//随机选择一个分支
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                }
                break;
            case 'X':
                branchselect='1'+ rand()%4;
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '3':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                case '4':
                    randomsuc[optionsnumbers]='!'+ rand()%15;
                    break;
                }
                break;
            case 'x':
                branchselect='1'+ rand()%4;
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '3':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                case '4':
                    randomsuc[optionsnumbers]='!'+ rand()%15;
                    break;
                }
                break;
            default:
                randomsuc[optionsnumbers]=optionsnumber[optionsnumbers];
                break;
            }
            optionsnumbers++;
            continue;
        }
    }
    return(randomsuc);
    free(randomsuc);
}

 

调用示例:

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

char *randommakes(char *optionsnumber);

void main()

{

while(1)

{

printf("%s\n",randommakes("MMMMM-MMMMM-MMMMM-MMMMM-MMMMM"));

system("pause");

}

}

char *randommakes(char *optionsnumber)
{
    srand((unsigned)time(NULL));//复位和初始化随机状态
    int optionsnumbers=0;//记录参数的个数
    int branchselect;//随机分支选择
    char *randomsuc;//存储随机生成的字符
    randomsuc=(char *)malloc(sizeof(char));
    while(1)//随机生成字符的while循环
    {
        if(optionsnumbers>2700)
        {
                printf("Options Out!\n");
                randomsuc=NULL;
                break;
        }
        else if(optionsnumber[optionsnumbers]=='\0')//判断形参是否结束了
        {
            randomsuc[optionsnumbers]='\0';//在randomsuc变量末尾加入结束符'\0'
            break;
        }
        else
        {
            switch(optionsnumber[optionsnumbers])//根据提取的形参选择分支
            {
            case 'T':
                randomsuc[optionsnumbers]='A'+ rand()%26;
                break;
            case 't':
                randomsuc[optionsnumbers]='a'+ rand()%26;
                break;
            case 'S':
                randomsuc[optionsnumbers]='!'+ rand()%15;
                break;
            case 's':
                randomsuc[optionsnumbers]='!'+ rand()%15;
                break;
            case 'N':
                randomsuc[optionsnumbers]='0'+ rand()%10;
                break;
            case 'n':
                randomsuc[optionsnumbers]='0'+ rand()%10;
                break;
            case 'G':
                branchselect='1'+ rand()%3;//随机选择一个分支
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '3':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                }
                break;
            case 'g':
                branchselect='1'+ rand()%3;//随机选择一个分支
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '3':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                }
                break;
            case 'M':
                branchselect='1'+ rand()%2;//随机选择一个分支
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                }
                break;
            case 'm':
                branchselect='1'+ rand()%2;//随机选择一个分支
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                }
                break;
            case 'X':
                branchselect='1'+ rand()%4;
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '3':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                case '4':
                    randomsuc[optionsnumbers]='!'+ rand()%15;
                    break;
                }
                break;
            case 'x':
                branchselect='1'+ rand()%4;
                switch(branchselect)
                {
                case '1':
                    randomsuc[optionsnumbers]='A'+ rand()%26;
                    break;
                case '2':
                    randomsuc[optionsnumbers]='a'+ rand()%26;
                    break;
                case '3':
                    randomsuc[optionsnumbers]='0'+ rand()%10;
                    break;
                case '4':
                    randomsuc[optionsnumbers]='!'+ rand()%15;
                    break;
                }
                break;
            default:
                randomsuc[optionsnumbers]=optionsnumber[optionsnumbers];
                break;
            }
            optionsnumbers++;
            continue;
        }
    }
    return(randomsuc);
    free(randomsuc);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值