将 C 字符串转换为单个整数
Converting a C string to individual integers
这个练习要求将输入作为数字的字符数组,然后将数字的数字相加。
#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;
最好使用 <string>
header 中的 std::getline
。
sum += atoi(numbers[i]);
atoi
将字符串作为参数,而不是单个 char
。您想要数字的总和,而不是通过将 atoi
应用于规范的所有正确子字符串而获得的数值的总和。
对于一个数字字符ch
,对应的数字值为ch - '0'
.
这个练习要求将输入作为数字的字符数组,然后将数字的数字相加。
#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;
最好使用 <string>
header 中的 std::getline
。
sum += atoi(numbers[i]);
atoi
将字符串作为参数,而不是单个 char
。您想要数字的总和,而不是通过将 atoi
应用于规范的所有正确子字符串而获得的数值的总和。
对于一个数字字符ch
,对应的数字值为ch - '0'
.