在 C 语言中,可以使用随机数生成函数和字符数组来生成随机字符串。以下是一个示例代码,它可以生成指定长度的随机字符串:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_LENGTH 50
char* generate_random_string(int length) {
char* str = malloc(length + 1);
const char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
if (str) {
for (int i = 0; i < length; i++) {
int index = rand() % (sizeof charset - 1);
str[i] = charset[index];
str[length] = '\0';
return str;
int main() {
srand(time(NULL));
int length = rand() % MAX_LENGTH + 1; // 生成 1 到 MAX_LENGTH 长度的随机字符串
char* str = generate_random_string(length);
printf("%s\n", str);
free(str);
return 0;
上述代码中,generate_random_string
函数会生成一个指定长度的随机字符串,并返回一个动态分配的字符数组。在函数中,首先动态分配了一个大小为 length+1
的字符数组,然后使用 rand()
函数生成 0 到 61 的随机数,根据这个随机数从字符集中选择一个字符加入字符串中,最后在字符串的末尾加上空字符 \0
,表示字符串的结束。
在主函数中,使用 srand(time(NULL))
来初始化随机数生成器。然后使用 rand() % MAX_LENGTH + 1
生成 1 到 MAX_LENGTH
长度的随机数,作为需要生成的字符串的长度。最后调用 generate_random_string
函数生成随机字符串,然后输出到控制台上。
需要注意的是,在使用完动态分配的字符数组之后,需要使用 free()
函数来释放内存空间。