char* genRandomString(char string[],int length) { int flag, i; srand((unsigned) time(NULL )); for (i = 0; i < length-1; i++) { flag = rand() % 3; switch (flag) { case 0: string[i] = 'A' + rand() % 26; break; case 1: string[i] = 'a' + rand() % 26; break; case 2: string[i] = '0' + rand() % 10; break; default: string[i] = 'x'; break; } } string[length - 1] = '\0'; return string; }
时间: 2024-02-10 09:10:26 浏览: 81
这段代码也可以用来生成随机字符串,它使用了一个 flag 变量来决定每个字符的类型,包括大写字母、小写字母和数字。需要注意的是,这里生成的字符串长度应该至少为 length+1,因为最后一个字符应该是字符串结尾符 '\0'。
另外,这个函数的返回值类型是 char*,但是它直接返回了参数 string,这样可能会导致一些问题。可以将返回值改为 void,或者在函数内部使用动态内存分配来分配一个新的字符串。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void genRandomString(char string[], int length) {
int flag, i;
srand((unsigned) time(NULL));
for (i = 0; i < length - 1; i++) {
flag = rand() % 3;
switch (flag) {
case 0:
string[i] = 'A' + rand() % 26;
break;
case 1:
string[i] = 'a' + rand() % 26;
break;
case 2:
string[i] = '0' + rand() % 10;
break;
default:
string[i] = 'x';
break;
}
}
string[length - 1] = '\0';
}
int main() {
char str[11];
genRandomString(str, 10);
printf("Random string: %s\n", str);
return 0;
}
```
这个程序调用了 genRandomString() 函数来生成随机字符串,并输出结果。
阅读全文