编写一个c++程序实现以下功能,由键盘输入一个由数字和非数字组成的字符串(不含空格),每个整数之间用间隔隔开。将其中连续的数字作为一个整数,依次存放到一个数组中,统计有多少个整数,输出整数的个数和这些整数,通过指针的方式实现。
时间: 2024-12-21 21:22:36 浏览: 13
C++统计中英文大小写字母、数字、空格及其他字符个数的方法
5星 · 资源好评率100%
为了实现这个功能,你可以按照以下步骤编写一个 C++ 程序:
```cpp
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
// 定义一个函数用于解析字符串并找到连续的数字
std::vector<int> parseString(const std::string& str) {
std::vector<int> numbers;
int number = 0;
bool is_number = false;
for (char c : str) {
if (isdigit(c)) { // 如果字符是数字
number *= 10; // 将当前数字与下一个数字相乘
number += c - '0'; // 添加当前字符的值
is_number = true;
} else if (is_number) { // 如果遇到非数字字符且之前是数字
numbers.push_back(number);
number = 0;
is_number = false;
}
}
if (is_number) { // 如果字符串结尾是数字
numbers.push_back(number);
}
return numbers;
}
int main() {
std::string input;
std::cout << "请输入一个由数字和非数字组成的字符串(不含空格):";
std::getline(std::cin, input);
std::vector<int> parsed_numbers = parseString(input);
int count = parsed_numbers.size();
std::cout << "整数个数:" << count << std::endl;
std::vector<int*> int_ptrs(count); // 创建指向整数的指针数组
for (size_t i = 0; i < count; ++i) {
int_ptrs[i] = &parsed_numbers[i]; // 初始化指针
}
// 输出整数及其对应的指针
for (size_t i = 0; i < count; ++i) {
std::cout << "第" << i+1 << "个整数: " << *int_ptrs[i] << std::endl;
}
return 0;
}
```
阅读全文