将字符串中的数字提取出来,并存放到一个新的数组中吗
时间: 2024-03-14 13:47:47 浏览: 18
好的,下面是用 Python 实现的代码,可以实现将字符串中的数字提取出来,并存放到一个新的数组中:
```python
import re
# 定义一个字符串
str1 = 'hello123world456'
# 使用正则表达式匹配字符串中的数字,并存储到一个数组中
num_list = re.findall('\d+', str1)
# 打印提取出来的数字数组
print(num_list)
```
在上面的代码中,我们使用了 Python 自带的 re 模块,其中的 findall() 函数可以找到字符串中所有匹配正则表达式的子串,并将其存储到一个数组中。在这里,我们使用了 `\d+` 这个正则表达式来匹配字符串中的数字,`+` 表示匹配一个或多个数字。
相关问题
用c语言将字符串中的数字提取出来,并存放到一个新的数组中
好的,下面是用 C 语言实现的代码,可以实现将字符串中的数字提取出来,并存放到一个新的数组中:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main() {
char str1[] = "hello123world456"; // 定义一个字符串
int num_list[100]; // 定义一个数组,用来存储提取出来的数字
int i = 0, j = 0, num = 0;
while (str1[i] != '\0') {
if (isdigit(str1[i])) { // 如果当前字符是数字
num = num * 10 + (str1[i] - '0'); // 将当前数字累加到 num 变量中
} else { // 如果当前字符不是数字
if (num > 0) { // 如果 num 变量中存储了数字
num_list[j++] = num; // 将 num 存储到数组中,并将 j 加 1
num = 0; // 将 num 变量清零
}
}
i++; // 将 i 加 1,继续遍历字符串
}
if (num > 0) { // 如果 num 变量中存储了数字
num_list[j++] = num; // 将 num 存储到数组中,并将 j 加 1
}
// 打印提取出来的数字数组
for (i = 0; i < j; i++) {
printf("%d ", num_list[i]);
}
printf("\n");
return 0;
}
```
在上面的代码中,我们使用了 C 语言自带的标准库函数库,包括 `stdio.h`、`stdlib.h`、`string.h`、`ctype.h`。我们使用一个 while 循环遍历字符串中的每一个字符,如果当前字符是数字,则将其累加到 `num` 变量中;如果当前字符不是数字,则将 `num` 变量中存储的数字存储到数组中,并将 `num` 变量清零。最后,我们打印存储数字的数组,就可以得到提取出来的数字了。
输入一个字符串,内有数字和非数字字符,将其中连续的数字作为一个整数,依次存放到一数组a中并输出
下面是一个 Python 代码实现:
```
def extract_integer(s):
result = []
current_number = ""
for char in s:
if char.isdigit():
current_number += char
else:
if current_number:
result.append(int(current_number))
current_number = ""
if current_number:
result.append(int(current_number))
return result
s = input("请输入字符串:")
a = extract_integer(s)
print(a)
```
这段代码定义了一个函数 `extract_integer`,该函数从输入的字符串中提取整数并存放到一个数组中,最后输出该数组。