如何计算用户输入的学生ID字符串中单个数字的数值总和?
修改C++代码实现学生ID数字求和功能
你的代码目前仅统计了输入字符串的字符长度,要实现数字求和,需要遍历每个字符、判断是否为数字,再将其转换为数值累加。以下是修改后的完整代码:
#include <iostream> #include <string> #include <cctype> // 用于isdigit函数 using namespace std; int main() { // 用户输入提示 cout << "Type in your student login ID: "; string studentId; // 获取用户输入 getline(cin, studentId); int sum = 0; // 初始化求和变量 // 遍历学生ID的每个字符 for (char c : studentId) { // 判断当前字符是否为数字 if (isdigit(c)) { // 将字符转换为对应的数值并累加(利用ASCII码差值:字符'0'到'9'的ASCII值连续递增) sum += (c - '0'); } } // 输出数字总和 cout << "Student ID Sum: " << sum << endl; return 0; }
关键修改说明:
- 新增
<cctype>头文件,用于调用isdigit()函数判断字符是否为数字 - 初始化
int sum = 0作为求和容器 - 使用范围for循环遍历输入字符串的每个字符
- 通过
c - '0'将字符形式的数字转换为整数数值 - 最终输出累加后的
sum,替换原代码中的studentId.length()
如果学生ID中包含非数字字符,这段代码会自动忽略它们,仅对数字部分求和。
内容的提问来源于stack exchange,提问作者Aiv
相关产品推荐
相关产品推荐

