【发布时间】:2018-04-26 19:22:52
【问题描述】:
本练习要求将输入作为数字的字符数组,然后将数字的位数相加。
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main() {
//Input a series of single digit numbers
char numbers[] = "a";
cout << "Input a series of single digit numbers." << endl;
cin >> numbers;
//convert the character array into a int array.
int sum = 0;
for (int i = 0; i < size; i++) {
sum += atoi(numbers[i]);
}
cout << "Sum of digits: " << sum;
return 0;
}
根据我的理解,atoi 函数一次只转换整个字符数组(C 字符串),我想我不能单步执行该数组,但它似乎应该可以工作。我的另一个选择是将 Cstring 转换为一个大整数,然后使用字符串的长度来逐步计算并计算每个位置的数字,但这可能效率更低,我可以做到这一点。
您会使用什么来查找单个数字作为字符数组的整数?
【问题讨论】:
-
numbers将是char[2]。您不能期望在numbers中捕获超过一位数的数字。size在您的示例中也未定义。
标签: c++ type-conversion c-strings atoi