我需要将用户输入整数传递给sumTotal(& userInt)函数 如果int是2341,我需要求和2 + 3 + 4 + 1 = 10并将值返回给main!
IAsset asset = getAssetByID(dbAsset.containerId);
IMediaProcessor indexer = GetLatestMediaProcessorByName(_mediaProcessorName);
IJob job = _context.Jobs.Create("MediaIndex Job - " + dbAsset.name);
string configuration = "";
ITask task = job.Tasks.AddNew("MediaIndex Task", indexer, configuration, TaskOptions.None);
// Specify the input asset to be indexed.
task.InputAssets.Add(asset); <---- need to pass IAssetFile here
答案 0 :(得分:0)
字符串是char
的数组。要将char
转换为int
,您必须'char' - '0'
。
我写了几个版本。 选择你最喜欢的那个。
#include <iostream>
#include <string>
int main()
{
std::string str = "1234";
int sum = 0;
//pre C++11
for (std::string::iterator i = str.begin(); i != str.end(); ++i)
sum += (*i - '0');
//C++11
sum = 0;
for (auto i = str.begin(); i != str.end(); ++i)
sum += (*i - '0');
//ranged-for
sum = 0;
for (const auto &i : str)
sum += (i - '0');
std::cout << "Sum: " << sum;
std::cin.get();
}
答案 1 :(得分:0)
一种简单有效的方法是将数字保存为字符串并一次访问一个数字。
请注意等式:
digit_number = digit_character - '0';
另外,知道在对数字求和时,顺序无关紧要。所以,我们有:
sum = 0;
for (i = 0; i < string.length(); ++i)
{
sum += string[i] - '0';
}
答案 2 :(得分:0)
如果你想要递归,你不需要任何字符串工作,试试这个:
#include <iostream>
using namespace std;
int recSum(int);
int main(){
int i;
cin>>i;
cout<<recSum(i);
return 0;
}
int recSum(int i){
return i==0?0:i%10+recSum(i/10);
}
数组版本的递归
#include <iostream>
using namespace std;
int recSum(int* ary,int len){
return len<0?0:ary[len]+recSum(ary,len-1);
}
int main(){
int j[]={1,2,3,4,5,6,7,8,9,10};
cout<<recSum(j,9);
}