cstring 中 char 值的乘积?
Product of char values in a cstring?
免责声明:作为一个自称的 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;
}
等等等等。我试着用
来测试这个
int main() {
char x[] = "HI";
printf("%d",product(x));
return(0);
}
当这是 运行 时,输出为 0。谁能告诉我这段代码有什么问题吗?
你想要 ==
,而不是 =
。您应该注意您的编译器警告。
为什么不直接将 ASCII 字符转换为整数然后减去 64?这将消除对所有 if 语句的需要。
免责声明:作为一个自称的 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;
}
等等等等。我试着用
来测试这个int main() {
char x[] = "HI";
printf("%d",product(x));
return(0);
}
当这是 运行 时,输出为 0。谁能告诉我这段代码有什么问题吗?
你想要 ==
,而不是 =
。您应该注意您的编译器警告。
为什么不直接将 ASCII 字符转换为整数然后减去 64?这将消除对所有 if 语句的需要。