实现一个接口, 输入随机数长度, 输出由0~9、a~z及A~Z组成的随机数; int GetRandom( int u32RandomLen, char*pcRandom)C
时间: 2024-10-21 21:05:49 浏览: 34
要在C语言中实现这个功能,你可以创建一个函数`GetRandom`,它接受两个参数:一个整数`u32RandomLen`表示随机字符串的长度,另一个指向字符数组`pcRandom`用于存放生成的随机字符串。这里我们可以用`<time.h>`库获取当前时间作为随机数种子,并使用`<stdlib.h>`库的`rand()`和`srandom()`函数生成随机数。然后通过循环生成指定长度的随机字符串,包括数字、小写字母和大写字母。
以下是简单的函数实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
void init_random() {
srand(time(0)); // 使用当前时间初始化随机数生成器
}
char getRandomChar() {
const char charset[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
return charset[rand() % (sizeof(charset) - 1)];
}
int GetRandom(int u32RandomLen, char *pcRandom) {
if (u32RandomLen <= 0 || pcRandom == NULL) {
printf("Invalid input! Random length must be positive and pcRandom cannot be NULL.\n");
return -1;
}
init_random(); // 初始化随机数生成器
for (int i = 0; i < u32RandomLen; ++i) {
pcRandom[i] = getRandomChar();
}
pcRandom[u32RandomLen] = '\0'; // 结束字符串并添加空字符
printf("Generated random string: %s\n", pcRandom);
return 0;
}
```
使用此函数时,首先要保证提供的内存空间足够存储随机字符串,例如:
```c
int main() {
int randomLen = 10; // 随机字符串长度
char randomString[randomLen]; // 字符数组用于存放结果
GetRandom(randomLen, randomString);
return 0;
}
```
阅读全文