输入一个字符串,内有数字和非数字字符,如a123b456。将其中连续的数字作为个整数,依次存放到一数组a中,例如,a[0]=123 a[1]=456。
时间: 2024-05-11 15:15:41 浏览: 90
好的,这是一个很好的问题。您可以使用正则表达式来匹配数字,然后将其转换为整数并存储在数组中。下面是一个示例代码:
```python
import re
s = "a123b456c789"
a = []
for match in re.finditer(r'\d+', s):
a.append(int(match.group()))
print(a)
```
输出为:`[123, 456, 789]`。希望能帮到您!
相关问题
输入一个字符串,内有数字和非数字字符,如a123b456。将其中连续的数字作为个整数,依次存放到一数组a中,例如,ar0]=123 a[1]=456。
好的,根据您的要求,我可以回答这个问题。这个问题可以通过正则表达式来解决,可以使用正则表达式来匹配连续的数字,然后将其转换为整数并存储到数组中。以下是一个示例代码:
```python
import re
s = "a123b456c789"
a = []
numbers = re.findall("\d+", s)
for num in numbers:
a.append(int(num))
print(a)
```
输出结果为:[123, 456, 789]。
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中的整数。
阅读全文