所以我试图弄清楚如何做到这一点:
编写一个递归函数,将 C 字符串中的所有字符相加。
我在正常执行此操作时有点生疏,但我终于让它与正常的 for 循环一起工作:
int countstr(string s)
{
int sum = 0;
if(s.length() == 0)
{
exit(0);
}
for (unsigned int i = 0; i < s.size(); i++)
{
sum += s[i];
}
return sum;
}
然后我可以进入 main 并执行以下操作:
int main ()
{
cout << "This word adds up to " << countstr("HELLO") << " in ASCII " << endl;
}
一切都按原样工作,通过它们的 ASCII 数字对字符串中的字符进行计数和累加。我遇到的问题是试图弄清楚它是如何输入的,因此它可以递归地工作。我知道我需要放弃 for 循环来代替调用函数本身,但我不知道用什么来代替 sum += s[i]; 我已经进入我的 for 循环。我一直在 C 字符串库中四处寻找,但我没有看到任何可以替换 for 循环调用的 [i] 的东西。有谁知道我应该用什么来做到这一点?我不是在寻找代码中的答案,只需要帮助我应该使用什么来实现这一点。