扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
字母 要求是包括大小写吗?
创新互联建站是专业的易县网站建设公司,易县接单;提供成都做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行易县网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
可以这样
char c;
srand(time(NULL));//设置随机数种子
c = rand()%52;
if(c 25) c = c - 25 + 'a';
else c = c+'A';
rand()生成的结果是一个整数,如果想得到字符(字母),则需要控制得到的数据在'a' - 'z'的ascii值之间的数据,给你一个生成大写字母的
int getRandChar()
{
int ch;
srand(time(NULL));
ch=rand()%26; //生成0-25的值
ch += 'A' ; //可得到一个随机字母
return ch ;
}
(1)前两位是10是因为printf("10%c%c%d%c%c%d%c%c\n",a3,a4,a5,a6,a7,a8,a9,a10);
的输出格式字符串前两位是10。
(2)因为你的输出都是用%c格式输出的,所以你说的“随机数字”和“随机字母”其实都是ASCII码表里面的字符,char类型只有128个字符,所以运行1000次肯定是有重复的。
用下面代码就可以了:
int
upcase
=
rand()%2;
(char)(upcase?'a':'a'
+
rand()%26);
不过生成随即数要用srand函数时间作为种子数,要不生成随即数不好。
#include stdio.h
#includestdlib.h
#includetime.h
void main()
{
int i;
char c;
srand((unsigned)time(NULL));
i=rand()1;//i用来控制产生的字母是大写还是小写
if(i==0)
c='A'+rand()%26;
else
c='a'+rand()%26;
printf("%c\n",c);
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流