C语言输入一个字符串(内含数字和非数字字符),将其中连续数字作为一个整数依次放在数组a中,统计其中有多少个整数,并输出这些数。(例如:a2345b12#345$wr12z这个字符串,将a[0]存放2345,将12存放在a[1]中,最后统计存放个数,以及输出这些数值。)
时间: 2024-02-18 10:02:22 浏览: 66
统计单词个数&&将字符串中连续出现的数字放进一维数组
4星 · 用户满意度95%
可以使用一个循环遍历整个字符串,使用一个指针指向当前扫描到的位置。当遇到数字字符时,就依次将其加入到一个临时字符串中,直到遇到一个非数字字符或字符串结尾为止。然后将临时字符串转换成整数,并存入数组中。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_NUMS 100
int main() {
char str[100];
int nums[MAX_NUMS];
int count = 0;
char *p = str;
printf("Please input a string: ");
fgets(str, sizeof(str), stdin);
while (*p != '\0') {
if (isdigit(*p)) {
char temp[20];
int i = 0;
while (isdigit(*p)) {
temp[i++] = *p;
p++;
}
temp[i] = '\0';
nums[count++] = atoi(temp);
}
else {
p++;
}
}
printf("There are %d integers in the string:\n", count);
for (int i = 0; i < count; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
示例输出:
```
Please input a string: a2345b12#345$wr12z
There are 4 integers in the string:
2345 12 345 12
```
阅读全文