生成随机字母和数字 (编译通过了,运行没效果是怎么回事)

0
//编译通过了,运行没效果是怎么回事
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
int main()
{
	char a[100], b[50];
	srand(time(0));
	a[100] = rand() % 26;//生成0-25的随机数
	b[100] = rand() % 26;
	b[100] += 'A';//字符转换成大写
	strcat_s(a, b);//连接数字和字母
	printf("%s", a);
	return 0;
}
C++
ava
◡̈

2021-8-25

0

数组越界了,而且生成随机整数并转换为字符串不是这么写的,建议使用sprintf,即:

#include<bits/stdc++.h>
using namespace std;
int main() {
	char str[100];
	memset(str,0,sizeof str);
	sprintf(str,"%d%c",rand()%26,char(rand()%26+'A'));
	printf(str);
	return 0;
}
ava
无名氏

2021-8-25

技术讨论社区