cstring中char值的乘积?

SSu*_*710 -3 c++ c-strings char

免责声明:作为一个自称为C++的菜鸟,我可能做了一个愚蠢的疏忽.请不要生气;)

无论如何,我正在尝试创建一个函数,将大写cstring的每个单独字符转换为int(a = 1,b = 2,...),然后将这些值相乘.这是我的代码:

int product(char s[]) {
int curProd = 1;
for (size_t i = 0; i < strlen(s);++i) {
    if (s[i] = 'A') {
        curProd = curProd * 1;
    }
    if (s[i] = 'B') {
        curProd = curProd * 2;
    }
    if (s[i] = 'C') {
        curProd = curProd * 3;
    }
Run Code Online (Sandbox Code Playgroud)

等等等等.我试着测试一下

int main() {
char x[] = "HI";
printf("%d",product(x));
return(0);
}
Run Code Online (Sandbox Code Playgroud)

运行时,输出为0.有人能告诉我这段代码有什么问题吗?

Fal*_*rri 5

你想要的==不是=.您应该注意编译器警告.