如何在C中替换变量名

时间:2016-04-13 09:35:48

标签: c string random strcpy

#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);。我怎么能这样做?

2 个答案:

答案 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;
}