c++如何使用随机函数生成字符串?

  首先,我们知道可以使用随机函数随机生成自然数,整数,小数等常见的数据类型,那怎么使用它生成包含26个英文字母大小写的字符串呢?

作用是什么?可以在我们做关于字符串的题中进行对拍,保证正确率。

  这很简单,代码也很朴素。

  每一个字符都对应了它的ascii码,而ascii码则是整数,所以我们可以通过得到字符的ascii码,将它转换成字符就行了。

代码如下:

#include<cstdio>
#include<time.h>
#include<stdlib.h>
using namespace std;
int main()
{
	srand(time(0));                         //产生随机化种子
	
	int n=rand()%15+1;                      //在1-15的范围内随机产生字符串个数 
	
	printf("%d",n);                                      
	   
	while(n--)                              //依次产生n个字符串 
	{
		
		printf("\n");
		
		int k=rand()%50+1;                  //随机生成一个字符串的长度 
		
		for(int i=1;i<=k;i++)
		{
			int x,s;                        //x表示这个字符的ascii码 ,s表示这个字符的大小写  
			s=rand()%2;                     //随机使s为1或0,为1就是大写,为0就是小写 
			if(s==1)                        //如果s=1 
			x=rand()%('Z'-'A'+1)+'A';       //将x赋为大写字母的ascii码 
			else 
			x=rand()%('z'-'a'+1)+'a';       //如果s=0,x赋为小写字母的ascii码 
			printf("%c",x);                 //将x转换为字符输出 
		}
		
	}
	return 0;
}

运行:


这样就好了。希望这能帮到你,你也可以根据需要改动代码。

猜你喜欢

转载自blog.csdn.net/weixin_42552927/article/details/81017806