【GESP】C++三级真题 luogu-B3956 [GESP202403 三级] 字母求和

### C++字母数值求和的操作 在 C++ 编程中,可以通过 ASCII 表来获取字符对应的整数编码值。英文字母 &#39;a&#39; 到 &#39;z&#39; 和 &#39;A&#39; 到 &#39;Z&#39; 都有固定的 ASCII 数字范围。因此可以利用这些特性完成字母的数值求和操作。 #### 实现方法 以下是基于 C++ 的一个简单示例程序,用于从给定字符串中提取所有字母并对其数值进行累加: ```cpp #include <iostream> #include <string> using namespace std; int sumOfAlphabetValues(const string& str) { int totalSum = 0; for (char ch : str) { // 使用增强型循环遍历字符串中的每一个字符 if ((ch >= &#39;A&#39; && ch <= &#39;Z&#39;) || (ch >= &#39;a&#39; && ch <= &#39;z&#39;)) { // 检查是否为字母 char baseChar = isupper(ch) ? &#39;A&#39; : &#39;a&#39;; // 确定基准字符 (&#39;A&#39; 或 &#39;a&#39;) totalSum += (ch - baseChar + 1); // 计算相对位置并加上偏移量 1 } } return totalSum; // 返回最终的结果 } int main() { string inputStr = "AbCdefG"; // 输入测试字符串 cout << "The sum of alphabet values in \"" << inputStr << "\" is: " << sumOfAlphabetValues(inputStr) << endl; // 输出结果 return 0; } ``` 上述代码实现了对输入字符串 `inputStr` 进行逐字符扫描,并判断其是否属于英文字母范畴[^4]。如果是,则依据大小写字母的不同情况调整基准字符 (`&#39;A&#39;` 或 `&#39;a&#39;`) 并计算该字母相对于基准的位置再加一作为实际贡献值加入总和之中[^1]。 #### 结果解释 对于样例 `"AbCdefG"` 来说: - A -> 1 - b -> 2 - C -> 3 - d -> 4 - e -> 5 - f -> 6 - G -> 7 所以总的字母数值之和应等于 **28**。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值