【发布时间】:2016-01-22 21:20:52
【问题描述】:
免责声明:作为一个自称 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。谁能告诉我这段代码有什么问题?
【问题讨论】:
-
为了速度
for (size_t i = 0; i < strlen(s);++i) {改成for (size_t i = 0; s[i];++i) { -
保存键盘
if (s[i] = 'A') {... etc一行就足够了,即curProd = curProd * (1 + s[i] - 'A') -
你确定你最后得到了
return curProd?