用c语言将字符串中的数字提取出来,并存放到一个新的数组中
时间: 2024-03-14 21:47:47 浏览: 83
c代码-9、有5个字符串,首先将它们按照字符串中的字符个数由小到大排列, 再分别取出每个字符串的第三个字母合并成一个新的字符串输出(若少于三个字符的输出空格)。要求:利用字符串指针和指针数组实现。
好的,下面是用 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` 变量清零。最后,我们打印存储数字的数组,就可以得到提取出来的数字了。
阅读全文