输入一个字符串,提取出该字符串中的所有正整数。
输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。输出若干行,每行是一个字符串中的正整数,若输入的字符串中无正整数,则输出None
样例输入:北京大学于1898年成立,已成立100余年。
样例输出:1898
100
首先判断是否是数字,其实就是判断ascii的区间即可
ChatGPT尝试为您解答,仅供参考
首先,我们需要将输入的字符串读入一个字符串流中,然后遍历字符串流中的每一个字符。如果遇到数字字符,我们就把它加入一个临时整数变量中,直到遇到非数字字符时,再将这个整数输出到输出流中。
具体实现如下:
#include <iostream>
#include <sstream>
int main() {
// 读入字符串
std::string input;
std::getline(std::cin, input);
// 创建字符串流
std::istringstream input_stream(input);
// 遍历字符串流
bool found = false;
while (input_stream.good()) {
int num = 0;
// 尝试从字符串流中读入一个整数
input_stream >> num;
if (input_stream.fail()) {
// 如果读入失败,说明遇到了非数字字符
// 忽略这个字符,继续遍历
input_stream.clear();
input_stream.get();
continue;
}
// 输出整数
std::cout << num << std::endl;
found = true;
}
// 如果没有找到正整数,输出 "None"
if (!found) {
std::cout << "None" << std::endl;
}
return 0;
}
这样,我们就可以使用 C++ 程序来提取字符串中的正整数了。