C语言输入一个字符串(内含数字和非数字字符),将其中连续数字作为一个整数依次放在数组a中,统计其中有多少个整数,并输出这些数。(例如:a2345b12#345$wr12z这个字符串,将a[0]存放2345,将12存放在a[1]中,最后统计存放个数,以及输出这些数值。)
时间: 2024-02-18 09:02:22 浏览: 62
C语言程序设计-编写程序。从键盘读入8个整数存入数组a中并输出这8个数据。和、最大值、最小值及平均值。正数之和、负数之和
5星 · 资源好评率100%
可以使用一个循环遍历整个字符串,使用一个指针指向当前扫描到的位置。当遇到数字字符时,就依次将其加入到一个临时字符串中,直到遇到一个非数字字符或字符串结尾为止。然后将临时字符串转换成整数,并存入数组中。下面是一个示例代码:
```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
```
阅读全文