TB椰程 TypeBuddy 打字搭子

2026-09 · 3级 · 分割字符串

GESP 标程 · 考级真题 · 代码 · cpp · 难度 4/5 · 共 958 字

CCF 原卷官方标程 · 字符串、结构体与类、位运算 · 本地编译通过(样例文本抽取有缺字,以 OJ 原题为准)

  • 2026-09
  • 字符串

正文

// GESP 2026-09 C++ 3级 编程题 2 · 分割字符串
// 原题:https://oj.yecheng.tv/p/gs2609l3p2
// 官方原卷:https://gesp.ccf.org.cn/101/attach/1767258728693792.pdf
// 题意:小明拿到了一段字符串文本,小明希望用下面的规则分割这个字符串: 1. 小明从左到右扫描字符串,遇到第一个空格后停止,并将字符……
// 知识点:字符串、结构体与类、位运算
// 参考程序:CCF 原卷官方标程,PDF 抽取后已去行号;本地编译核验通过,供打字练习
// 原卷样例验证:样例验证 1/2 通过
// 提示:官方样例答案由 PDF 文本化生成,空格/换行可能缺失,样例对比未全通过;程序保持官方原样
//
#include <iostream>
#include <string>
using namespace std;
int main() {
    string s = "";
    getline(cin, s);
    for (int k = 1;; ++k) {
        string spaces = "";
        for (int i = 0; i < k; ++i) {
            spaces += "  ";
        }
        int pos = s.find(spaces);
        if (pos < 0 || pos >= s.size()) break;
        for (int i = 0; i < pos; ++i) {
            cout << s[i];
        }
        cout << endl;
        string rest = "";
        for (int i = pos + k; i < s.length(); ++i) {
            rest += s[i];
        }
        s = rest;
    }
    cout << s << endl;
    return 0;
}

GESP 标程 · 考级真题的其它内容

打字首页 · 英语学习中心 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK