本练习要求将输入作为数字的字符数组,然后将数字的数字相加。
#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 转换为一个大整数,然后使用字符串的长度遍历并计算每个位置的数字,但这可能比我能做的更低效。
您将使用什么来查找单个数字作为字符数组的整数?
最佳答案
char numbers[] = "a";
这将创建一个包含 2 char
的数组项目。这对于任何合理的事情都是不够的。使用 std::string
相反。
cin >> numbers;
更好用std::getline
来自 <string>
标题。
sum += atoi(numbers[i]);
atoi
将字符串作为参数,而不是单个 char
.您想要数字的总和,而不是通过应用 atoi
获得的数值的总和到规范的所有正确子串。
对于数字字符 ch
,对应的数字值为ch - '0'
.
关于c++ - 将 C 字符串转换为单个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50050527/