编写程序,将一个字符串中的数字字符串转换成对应的整数输出 (假设全是整数,不需要考虑小数情况) 例如: 输入字符串:abs123efe45sefe89sef 输出整数:123 45 89 (输出的是3个整数)c++,数组方式
时间: 2024-02-19 10:58:27 浏览: 59
好的,以下是使用 C++ 数组方式实现的代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[100]; // 定义一个字符串数组
cin >> str; // 输入字符串
int len = strlen(str); // 获取字符串长度
int num = 0; // 用于存储当前数字字符串对应的整数
bool flag = false; // 用于判断当前是否在数字字符串中
for (int i = 0; i < len; i++) {
if (str[i] >= '0' && str[i] <= '9') { // 如果当前字符是数字
num = num * 10 + (str[i] - '0'); // 将数字字符转换成对应的整数并累加
flag = true; // 标记当前在数字字符串中
} else { // 如果当前字符不是数字
if (flag) { // 如果之前在数字字符串中
cout << num << " "; // 输出当前数字字符串对应的整数
num = 0; // 重置 num
flag = false; // 标记当前不在数字字符串中
}
}
}
if (flag) { // 如果字符串以数字结尾
cout << num << endl; // 输出最后一个数字字符串对应的整数
}
return 0;
}
```
输入一个字符串,比如 `abs123efe45sefe89sef`,输出结果为:
```
123 45 89
```
其中,`num` 变量用于存储当前数字字符串转换成的整数,`flag` 变量用于判断当前是否在数字字符串中。遍历字符串中的每个字符,如果当前字符是数字,则将其转换成对应的整数并累加到 `num` 中;如果当前字符不是数字,则判断之前是否在数字字符串中,如果是,则输出当前数字字符串转换成的整数,并重置 `num` 和 `flag` 变量。最后,如果字符串以数字结尾,则输出最后一个数字字符串对应的整数。
阅读全文