输入一个字符串,内有数字和非数字字符,如:a123×456&17960? 302tab5876,将其中连续的数宇作为一个整数,依次存放到一整型数组中。 如123放在a[0]中,456放在a[1]中⋯•统计共有多少个整数,并输出这些数。 (第6章习题16) 以参考如下程序结构设计:用c++编写
时间: 2024-02-05 13:10:51 浏览: 43
以下是程序代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str[100];
int a[100], cnt = 0;
memset(a, 0, sizeof(a)); //初始化数组a全部为0
cout << "请输入一个字符串:";
cin.getline(str, 100);
for (int i = 0; i < strlen(str); i++) {
if (str[i] >= '0' && str[i] <= '9') {
int num = 0, j = i;
while (str[j] >= '0' && str[j] <= '9') {
num = num * 10 + (str[j] - '0');
j++;
}
a[cnt++] = num;
i = j - 1;
}
}
cout << "共有" << cnt << "个整数,它们分别是:";
for (int i = 0; i < cnt; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
程序运行时,先输入一个字符串,然后遍历字符串中的每个字符,如果是数字字符就将它和后面的数字字符组合成一个整数,存放到数组a中,并将计数器cnt加1。最后输出整数的个数cnt以及数组a中的所有元素。