C++用指针读取若干含空格的字符串,统计其中的正整数的字符数目(若有多个数字相连则算作一个)并输出正整数,变量只能有数组和指针
时间: 2024-02-10 07:10:37 浏览: 64
可以使用指针遍历字符串,使用数组记录每个正整数的长度,最后输出所有正整数并统计字符数目。
以下是代码示例:
```c++
#include <iostream>
using namespace std;
int main() {
char str[100];
cin.getline(str, 100); // 读入含空格的字符串
int len = strlen(str);
int nums[100] = {0}; // 记录每个正整数的长度
int index = 0; // 当前正整数的下标
int count = 0; // 统计正整数的字符数目
for (int i = 0; i < len; i++) {
if (str[i] >= '0' && str[i] <= '9') { // 当前字符为数字
if (index == 0) { // 新的正整数开始
index++;
count++;
nums[index]++;
} else { // 当前正整数继续
if (str[i-1] < '0' || str[i-1] > '9') { // 上一个字符不是数字
index++;
nums[index]++;
} else {
nums[index]++;
}
count++;
}
}
}
// 输出所有正整数
for (int i = 1; i <= index; i++) {
for (int j = 0; j < nums[i]; j++) {
cout << str[count - nums[i] + j];
}
cout << endl;
}
return 0;
}
```
示例输入:
```
abc 123 45 678 def
```
示例输出:
```
123
45
678
```
阅读全文