C++数组open judge提取字符串中的数字

输入一个字符串,提取出该字符串中的所有正整数。
输入一行字符串(字符串中没有空白字符,字符串长度不超过100)。输出若干行,每行是一个字符串中的正整数,若输入的字符串中无正整数,则输出None样例输入北京大学于1898年成立,已成立100余年。样例输出1898
100
利用数组的知识实现。

详细代码实现和注释如下,望采纳

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main() {
    string s;
    cin >> s;
    bool flag = false;
    // 用于标记是否有输出过数字
    for (int i = 0; i < s.length(); i++) {
        if (s[i] >= '0' && s[i] <= '9') // 如果当前字符是数字 {
            flag = true;
            // 标记已经输出过数字
            cout << s[i];
        } else if (flag) // 如果当前字符不是数字,但是之前已经输出过数字 {
            flag = false;
            // 重置标记
            cout << endl;
        }
    }
    if (!flag) // 如果最终没有输出过数字 {
        cout << "None" << endl;
    }
    return 0;
}