输入一个字符串,内有数字和非数字字符,例如:a123cdf 456.78cpc876.9er 840, 将其中连续的数字作为一个整数,依次存放到一数组a中。例如123存放在a[0],456存放在a[2],78存放在a[3],依次类推,统计共有多少个数,并输出这些数。
时间: 2023-05-04 07:01:46 浏览: 76
题目要求输入一个字符串,其中既有数字又有非数字字符,例如:a123cdf 456.78cpc876.9er 840,将其中连续的数字作为一个整数,依次存放到一个数组a中。例如,123存放在a[0],456存放在a[2],78存放在a[3]。按次序推,统计共有多少个数字,并输出这些数。
相关问题
统计整数个数【问题描述】输入一个字符串,其包括数字和非数字字符,如:a123x456 17
【问题解答】对于题目给定的字符串:a123x456 17,我们需要统计其中整数的个数。
以下是一种可行的方法:
1. 定义一个变量 count,用来记录整数的个数,初始化为0。
2. 遍历字符串的每一个字符。
3. 检查当前字符是否为数字字符。如果是数字字符,则进入步骤4;如果不是数字字符,则跳过当前循环,进入下一个字符。
4. 当前字符是数字字符,我们需要判断连续的数字字符组成的整数的个数,进入步骤5。
5. 声明一个变量 temp,将当前字符添加到 temp 中。
6. 继续检查下一个字符,如果下一个字符也是数字字符,则将其添加到 temp 中,同时继续检查下一个字符,直到不是数字字符为止。
7. 如果 temp 不为空(即存在数字字符),则将 count 的值加1。
8. 继续遍历下一个字符,重复步骤3-7,直到遍历完所有字符。
9. 遍历完所有字符后,返回 count 的值,即统计到的整数个数。
按照上述方法进行计算,对于题目给定的字符串:a123x456 17,我们可以得到结果为2,即字符串中共有2个整数。
注意:上述方法仅适用于数字字符和非数字字符交替出现的情况。如果数字字符和非数字字符不交替出现,或者存在其他特殊情况,需要根据具体情况作出相应的调整。
10.16输入一个字符串,内有数字和非数字字符,如: a123x456 17960? 302tab5876 将其中连续的数字作为一个整数,依次存放到一数组num中。...
好的,我可以帮你解决这个问题。你可以参考以下的代码实现:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
string s;
cin >> s;
vector<int> num;
int i = 0;
while (i < s.size()) {
if (isdigit(s[i])) {
int j = i;
while (j < s.size() && isdigit(s[j])) {
j++;
}
int n = stoi(s.substr(i, j - i));
num.push_back(n);
i = j;
} else {
i++;
}
}
for (int n : num) {
cout << n << " ";
}
cout << endl;
return 0;
}
```
这个程序首先读入一个包含数字和非数字字符的字符串,然后使用一个vector来存储提取出来的整数。程序从字符串的第一个字符开始扫描,如果当前字符是数字,就继续往后扫描,直到扫描到一个非数字字符为止。然后使用substr函数提取出这段连续的数字,并使用stoi函数将其转换为整数,存储到vector中。如果当前字符不是数字,就直接跳过。最后,程序输出存储在vector中的整数。