21xrx.com
2024-12-22 20:05:50 Sunday
登录
文章检索 我的文章 写文章
C++实现:提取字符串中的数字并求和
2023-07-06 04:26:30 深夜i     --     --
C++ 字符串 数字 提取 求和

C++是一种高级编程语言,广泛应用于各种不同领域的软件开发中。其中,字符串是常用的数据类型之一,经常用来存储各种信息,如姓名、地址、电话号码等。在这些字符串中,可能会包含数字,如果需要从字符串中提取数字并求和,可以使用C++来实现。下面介绍一种实现方法。

首先,需要定义一个函数,用于从字符串中提取数字。这个函数可以使用C++中的字符串类(string),其中包含了许多有用的方法。具体实现代码如下:


#include <string>

using namespace std;

int extractNumber(string str) {

  int num = 0;

  for (int i = 0; i < str.length(); i++) {

    if (isdigit(str[i])) {

      num = num * 10 + (str[i] - '0');

    }

  }

  return num;

}

在这个函数中,首先定义了一个变量num,用于存储提取出来的数字。然后使用循环遍历字符串中的每一个字符,如果该字符是数字,就将其转化为整数并加入到num中。最后返回num的值。

接下来,可以编写一个主函数,用于读取输入并求和。具体实现代码如下:


#include <iostream>

#include <string>

using namespace std;

int main() {

  string input;

  getline(cin, input);

  int sum = 0;

  while (input.length() > 0) {

    int pos = input.find_first_of("0123456789");

    if (pos == string::npos)

      break;

    

    input = input.substr(pos);

    int num = extractNumber(input);

    sum += num;

    input = input.substr(to_string(num).length());

  }

  cout << "Total: " << sum << endl;

  return 0;

}

在这个主函数中,首先读入一个字符串作为输入,并定义一个变量sum,用于记录数字的总和。然后使用一个循环来提取字符串中的数字。在循环中,首先使用字符串的find_first_of方法找到字符串中第一个数字的位置,如果没有找到,则跳出循环。然后使用substr方法从输入字符串中截取出数字,再使用extractNumber函数将其转化为整数,并加入到sum中。最后使用substr方法将已经处理过的数字删除掉,继续循环处理。最后输出数字的总和。

综上所述,使用C++提取字符串中的数字并求和是非常简单的,只需要借助一些字符串处理的方法即可实现。这种方法还可以用于处理各种不同格式的字符串,例如,从网页中提取价格信息、从日志文件中提取访问次数等。因此,熟悉这种方法对于C++程序员来说至关重要。

  
  

评论区

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