C语言生成指定长度随机字符串

#include 
#include 
#include 
 
#define STR_LEN 10//定义随机输出的字符串长度。
char *GenerateStr()
{
    char str[STR_LEN + 1] = {0};
    int i,flag;
     
    srand(time(NULL));//通过时间函数设置随机数种子,使得每次运行结果随机。
    for(i = 0; i < STR_LEN; i ++)
    {
		flag = rand()%3;
		switch(flag)
		{
		case 0:
			str[i] = rand()%26 + 'a'; 
			break;
		case 1:
			str[i] = rand()%26 + 'A'; 
			break;
		case 2:
			str[i] = rand()%10 + '0'; 
			break;
		}
    }
    printf("%s\n", str);//输出生成的随机数。
     
    return str;
}

//下面的生成方法用到了string,string是C++中的类,而且malloc内存之后没有释放,存在内存泄漏的风险,不建议使用下面的方法
char* genRandomString(int length)  
{  
    int flag, i;  
    char* string;  
    srand((unsigned) time(NULL ));  
    if ((string = (char*) malloc(length)) == NULL )  
    {  
        printf("Malloc failed!flag:14\n");  
        return NULL ;  
    }  
  
    for (i = 0; i < length+1; i++)  
    {  
        flag = rand() % 3;  
        switch (flag)  
        {  
            case 0:  
                string[i] = 'A' + rand() % 26;  
                break;  
            case 1:  
                string[i] = 'a' + rand() % 26;  
                break;  
            case 2:  
                string[i] = '0' + rand() % 10;  
                break;  
            default:  
                string[i] = 'x';  
                break;  
        }  
    }  
    string[length] = '\0';
    return string;  
} 
void main()
{
	GenerateStr();
	printf("%s\n",genRandomString(10));
}

C语言生成指定长度随机字符串_第1张图片

你可能感兴趣的:(C代码)