#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int main()
{
const char mot1[] = "POMME", mot2[] = "POIRE", mot4[] = "PASTEQUE", mot5[] = "MELON", mot6[] = "ORANGE", mot7[] = "FRAISE", mot8[] = "FRAMBOISE", mot9[] = "CITRON", mot10[] = "MANGUE";
srand(time(NULL));
int index = rand() % 10 + 1;
char secret[100] = "";
strcpy(motindex, secret);
printf("Secret is now %s\n", secret);
return 0;
}
这是我从一系列const char生成随机密码字的代码。
我想替换index
中的strcpy(motindex, secret);
。我怎么能这样做?
答案 0 :(得分:5)
你不能;字符串不是标识符,标识符不是字符串 (变量名甚至不存在于程序中 - 它们只存在于源代码中。)
使用数组并使用索引作为&#34; name&#34;。
我还怀疑你想以相反的方式复制秘密,所以IssuerName
保留了水果的名称。
SigningCertificate
答案 1 :(得分:2)
我认为双暗阵列可以解决您的问题 下面的代码列表
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define SC_NUM 10
int main(){
const char motSecret[SC_NUM][100] = {
"POMME",
"POIRE",
"PASTEQUE",
"MELON",
//some more const secret
};
int index = ((rand() % SC_NUM) + SC_NUM) % SC_NUM;
char secret[100];
strcpy(secret, motSecret[index]);
printf("Secret is now %s\n", secret);
return 0;
}