/* 输入一个带有空格的字符串(包含字母、数字、空格以及其他符号),提取字符串中的数字转换为整数并输出, 字符串中的非数字字符视为分割符。输出数据间以空格分隔,末尾没有空格,并换行输出所有整数的和值。 若字符串中没有任何数字时,输出“NO”。输入的字符串长度不超过80。 输入:一行字符串(含有空格)。 输出格式:第一行:转换后的各整数间用一个空格分隔,第二行:和值。 样例输入: 1 0022 8weh**67$$ 样例输出: 1 22 8 67 98 */
时间: 2024-02-29 20:52:06 浏览: 261
GET 方式提交的含有特殊字符的参数
5星 · 资源好评率100%
好的,我可以帮你解决这个问题。以下是实现该功能的 C++ 代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
getline(cin, s); // 读取一行字符串
int sum = 0, num = 0;
bool hasNum = false; // 是否存在数字
for (int i = 0; i < s.size(); i++)
{
if (s[i] >= '0' && s[i] <= '9')
{
num = num * 10 + (s[i] - '0'); // 将字符转换为数字
hasNum = true;
}
else
{
if (hasNum)
{
cout << num << " "; // 输出数字
sum += num; // 求和
num = 0;
hasNum = false;
}
}
}
if (hasNum)
{
cout << num << " "; // 输出最后一个数字
sum += num; // 求和
}
if (sum == 0)
{
cout << "NO"; // 没有数字
}
else
{
cout << endl << sum; // 输出和值
}
return 0;
}
```
输入示例:
```
1 0022 8weh**67$$
```
输出示例:
```
1 22 8 67
98
```
阅读全文