用C++写一个程序,要求不能用指针,将键盘输入的包括数字,非数字字符,空格的字符串中连续的数字作为一个整数,依次存放到一维整醒数组中,统计字符串中共有多少个整数,并输出这些数
时间: 2024-01-07 09:04:22 浏览: 69
从键盘上输入一串英文字符(不含空格与其他字符),统计每个字符的数目,并输出字母及相应的数目。
好的,以下是满足要求的C++程序:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
const int MAXN = 100; // 假设最多有100个整数
char s[MAXN];
int a[MAXN], cnt = 0;
cin.getline(s, MAXN);
int len = strlen(s);
int i = 0;
while (i < len) {
if (s[i] >= '0' && s[i] <= '9') { // 遇到数字
int num = 0;
while (s[i] >= '0' && s[i] <= '9') { // 将连续的数字转化为整数
num = num * 10 + s[i] - '0';
i++;
}
a[cnt++] = num; // 存储整数
}
else {
i++;
}
}
cout << "共有" << cnt << "个整数,它们分别是:";
for (int i = 0; i < cnt; i++) {
cout << a[i] << " ";
}
cout << endl;
return 0;
}
```
这个程序的基本思路是:读入字符串后遍历每个字符,当遇到数字字符时,就将连续的数字字符转化为一个整数,并存储到数组中。最后输出数组中存储的整数即可。
需要注意的是,当读入的字符串中数字的位数很多时,转化为整数可能会导致溢出,这里没有做处理,需要根据实际情况进行改进。
阅读全文