1. 题目背景与需求解析
这道编程题来自GESP(青少年编程能力等级考试)2026年3月C++一级认证的第三部分。作为认证考试中的实操题型,它主要考察考生对基础编程概念和逻辑思维的掌握程度。题目要求实现一个"数字替换"功能,这是编程初学者必须掌握的字符串处理基础操作。
在实际开发中,类似的需求非常常见。比如处理用户输入时规范格式、批量修改文本中的特定字符、数据清洗等场景都会用到这类操作。这道题虽然简单,但很好地模拟了真实编程中的基础任务。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 题目具体要求分析
2.1 题目描述还原
根据题目片段"数字替换",我们可以还原出完整题目要求大致如下:
给定一个字符串,将其中的所有数字字符('0'-'9')替换为指定的字符。例如:
- 输入字符串:"a1b2c3"
- 替换字符:'*'
- 输出结果:"abc*"
2.2 考察的核心知识点
这道题主要考察以下几个C++基础知识点:
- 字符串的基本操作(遍历、访问单个字符)
- 字符类型的判断(判断一个字符是否为数字)
- 条件语句的使用(if判断)
- 字符串的修改操作
2.3 输入输出规范
虽然题目描述不完整,但根据GESP考试的一贯风格,我们可以合理推测:
- 输入:一个字符串和一个替换字符
- 输出:替换后的新字符串
- 要求:不能修改原字符串,需要返回新字符串
3. 解决方案设计与实现
3.1 基础实现思路
最直接的实现方式是:
- 创建一个空字符串用于存储结果
- 遍历原字符串的每个字符
- 如果当前字符是数字,则追加替换字符到结果字符串
- 否则,追加原字符到结果字符串
- 返回结果字符串
3.2 C++代码实现
cpp复制#include <iostream>
#include <string>
#include <cctype> // 用于isdigit函数
using namespace std;
string replaceDigits(const string& str, char replacement) {
string result;
for (char c : str) {
if (isdigit(c)) {
resul
