我目前正在尝试使用随机字符串生成器来生成字符串.它看起来像这样:
char *randstring(int length) {
static char charset[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,.-#'?!";
char *randomString = NULL;
int n = 0;
if (length) {
randomString = malloc(sizeof(char) * (length +1));
if (randomString) {
for (n = 0;n < length;n++) {
int key = rand() % (int)(sizeof(charset) -1);
randomString[n] = charset[key];
}
randomString[length] = '\0';
}
}
return randomString;
}
Run Code Online (Sandbox Code Playgroud)
我想这样称呼它:
srand(time(NULL));
int r = rand()%1000;
char *string[1000];
&string = randomstring(r);
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到以下错误:
error: invalid lvalue in assignment.
Run Code Online (Sandbox Code Playgroud)
我看过网上但我无法弄清楚为什么这不起作用.有什么建议?我假设它与指针有关.
最有可能的是,正确的代码是:
char *string = randomstring(52);
Run Code Online (Sandbox Code Playgroud)
如果由于某种原因你想保留字符指针数组,你也可以这样做:
char *string[1000];
string[0] = randomstring(102);
Run Code Online (Sandbox Code Playgroud)