gpt4 book ai didi

c - 如何在运行时用其持有者替换 char 变量?

转载 作者:行者123 更新时间:2023-11-30 15:02:38 26 4
gpt4 key购买 nike

我想写这样的东西:

(s[i])[i] ,where s[i] is of type char[].

示例:

s[i]="PDGH";
for(i = 0 ; i < strlen(someNumber) ; i=i+3 )
(s[i])[formula]++; // on compile if s[i]='P', then i want to get P[formula]++ .

最佳答案

您要求的是将字符串(在您的情况下是单个字符)映射到 C 中的变量。该语言不直接支持这一点。然而,您可以使用您选择的关联数组实现,其中有大量的选择 - 请参阅此处:Looking for a good hash table implementation in C

或者,由于在您的示例中只有单字符变量(P、D、G、H),您可以构建一个查找表:

int P=0, D=0, G=0, H=0;
int* targets[256] = {};
targets['P'] = &P;
targets['D'] = &D;
targets['G'] = &G;
targets['H'] = &H;

for (size_t i = 0; i < strlen(s); i += 3) {
assert(targets[s[i]]);
(*targets[s[i]])++; /* if s[i] == 'P', increment P */
}

关于c - 如何在运行时用其持有者替换 char 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40972863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com