21xrx.com
2024-11-05 18:39:38 Tuesday
登录
文章检索 我的文章 写文章
C++实现字符串中数字提取与求和
2023-07-09 17:37:58 深夜i     --     --
C++ 字符串 数字提取 求和

C++实现字符串中数字的提取与求和

字符串是我们日常开发中经常使用的一种数据类型,而其中也可能包含一些数字,如果我们需要提取这些数字并进行求和,该如何实现呢?

在C++中,我们可以使用stringstream类来实现这个功能。首先,我们需要将字符串转换成stringstream对象,然后利用stringstream的输入输出操作符来提取出字符串中的数字,最后再将这些数字进行求和。

下面是一个示例代码,可以从字符串中提取数字并进行求和:


#include <iostream>

#include <string>

#include <sstream>

using namespace std;

int main()

{

  string str = "abc123def456gh789";

  int sum = 0;

  stringstream ss(str);

  char ch;

  int num;

  while (ss >> ch) {

    if (isdigit(ch)) {

      ss.unget();

      ss >> num;

      sum += num;

    }

  }

  cout << "Sum of numbers in the string: " << sum << endl;

  return 0;

}

在这段代码中,我们先定义了一个字符串变量str和一个整数变量sum,后者用来保存最终求和的结果。然后,我们创建了一个stringstream对象ss,将字符串str传递给它。

接下来,我们使用一个while循环来遍历字符串中的每个字符。如果该字符是数字,则我们会利用stringstream的unget()函数将该字符推回到字符串流中,然后再通过>>操作符从流中提取出对应的数字,并将其添加到sum中。

最后,我们输出sum的值,即为字符串中数字的和。

需要注意的是,在这段代码中,我们使用了isdigit()函数来判断一个字符是否为数字,这个函数需要在头文件ctype.h中进行引用。

总结来说,利用stringstream类可以方便地实现从字符串中提取数字并进行求和的功能,这对于日常开发中处理字符串数据非常有用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复