在C语言中怎样产生随机的字符串

在VC中,怎样产生一个随机的字符串?
有没有什么库函数?
或者用什么思想来实现设计算法?
最好以代码为例哈,
谢谢!

直接产生随机的字符串的库函数是没有的,
但是可以这么实现:
1.产生固定长度的随机的字符串
主要就是产生固定个数的随机字符,
那么就简单了,用两组随机数:
一组:随机产生0~25的整数num,然后用'a'+num来赋值小写字母,'A'+num来赋值大写字母
一组:随机产生0,1,产生0,用'a'来和num相加,生成小写字母;产生1,用'A'来和num相加,生成大写字母;

2.产生不固定长度的随机的字符串
就是在上面的产生固定长度的随机的字符串的基础上,在引入一组随机数,来控制字符串长度

代码如下:
1.产生固定长度的随机的字符串
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define N 10//固定长度为10

void main()
{
int flag,charLengt;
int i,j,k=0;
char ch[N+1]={NULL};
srand((unsigned)time(NULL));

for(i=0;i<10;i++)//生成10个String吧
{
for(j=0;j<N;j++)
{
flag=rand()%2;
if(flag) ch[k++]='A'+rand()%26;
else ch[k++]='a'+rand()%26;
}
ch[k]='\0';
k=0;
printf("%s\n",ch);
}

getch();
}

不定长的自己参照着写吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-06
//产生长度为length的随机字符串
char* genRandomString(int length)
{
int flag, i;
char* string;
srand((unsigned) time(NULL ));
if ((string = (char*) myMalloc(length)) == NULL )
{
myLog("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 - 1] = '\0';
return string;
}
第2个回答  2009-02-28
#include <stdlib.h>

...

char R[26]={'A',....'Z'}
char C[100] = {0};

for(int n=0;n<100;n++){

C[n] = R[rand()%26];

}
第3个回答  2009-03-01
能把问题说得具体一点吗?
相似回答