【发布时间】:2019-06-20 10:12:56
【问题描述】:
我正在尝试编写一个函数,它采用一个 int 参数并返回其数字的总和。例如,digital_root(123) 将返回 1+2+3,即 6。而在 for 循环中我不能将单个字符转换为整数..
应该包括我同时使用了 atoi() 和 stoi() 函数。代码有什么问题?
int digital_root(int x)
{
int t = 0;
string str = to_string(x);
for(char& c : str){
t += atoi(c);
}
return t;
}
我希望字符能够成功转换为整数。我该怎么做?
【问题讨论】:
-
您不需要引入或使用任何字符串来将数字相加。想想除以 10 和模数。
-
有什么问题?你收到错误了吗?例外?你的问题不是很明确。
-
如果你坚持使用字符串方式进行计算,
str.substr(i, 1)可能会被 atoi()/stoi() 接受。 -
我可以使用其他方便的功能吗?为什么使用字符串是个坏主意?