黄岩路桥网站设计,网站项目建设周期,网站模板教程,宁波创世纪网络科技有限公司【问题描述】
输入一个字符串#xff0c;含有数字和非数字字符#xff0c;如“sumabc234;while(abc700)tab{ass346;bssabc267;}”#xff0c;将其中连续的数字作为一个整数#xff0c;依次存放到一个数组nums中。例如#xff0c;234放在nums[0]#xff0c;700放在nums[1…【问题描述】
输入一个字符串含有数字和非数字字符如“sumabc234;while(abc700)tab{ass346;bssabc267;}”将其中连续的数字作为一个整数依次存放到一个数组nums中。例如234放在nums[0]700放在nums[1]……统计共有多少个整数并输出这些整数。结合指针和自定义函数完成该题。
【输入形式】sumabc234;while(abc700)tab{ass346;bssabc267;}
【输出形式】There are 4 integers:234 700 346 267 【样例输入】sumabc234;while(abc700)tab{ass346;bssabc267;}
【样例输出】There are 4 integers:234 700 346 267
按照题目给定的输入输出完成。
#include iostream
#include string
#include vector
using namespace std;// 函数声明用于判断一个字符是否为数字字符
bool isN(char c);int main()
{// 用于存储输入的字符串string str;// 循环变量用于遍历字符串int i;// 记录数字字符开始的位置int start 0;// 用于存储从字符串中提取出来的整数值int number;// 定义一个动态数组向量用于存储从字符串中提取出的所有整数vectorint N;// 获取输入的一行字符串getline(cin, str);// 遍历输入的字符串for (i 0; i str.length(); i){// 如果当前字符是数字字符if (isN(str[i])){// 记录数字开始的位置start i;// 当当前字符是数字且未超出字符串长度时继续向后遍历while (isN(str[i]) i str.length())i;// 从字符串中提取出连续的数字字符组成的子串string numberStr str.substr(start, i - start);// 将提取出的数字字符子串转换为整数number stoi(numberStr);// 将转换后的整数添加到存储整数的向量中N.push_back(number);}}// 输出提取出的整数的个数信息cout There are N.size() integers:;// 遍历存储整数的向量输出其中的每个整数for (i 0; i N.size(); i)cout N[i] ;// 输出换行符使输出格式更美观cout \n;return 0;
}// 函数定义判断传入的字符是否为数字字符0到9之间
// 返回值为布尔类型是数字字符则返回true否则返回false
bool isN(char c)
{return c 0 c 9;
} C vector的超级详细实用用法_vector c 库文件-CSDN博客