21xrx.com
2025-03-22 17:00:50 Saturday
文章检索 我的文章 写文章
C++中提取字符串中的数字
2023-07-09 08:54:14 深夜i     --     --
C++ 字符串 提取 数字

C++是一种强大而广泛使用的编程语言,它具有很多功能和特性,其中之一是可以提取字符串中的数字。在C++中,字符串是一系列字符,可以包含数字、字母、符号等各种元素。因此,在处理字符串时,我们经常需要从中提取数字以进行进一步的计算和处理。

在C++中,提取字符串中的数字可以通过以下几种方式实现:

1.使用字符串流

字符串流可以将字符串转换为数字,具体实现方法是将字符串流与一个整数型变量绑定,然后通过流提取运算符>>将字符串转换为整数。示例代码如下:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
void extractNumber(string str) {
  stringstream ss;
  ss << str;
  int num;
  while (!(ss >> num).fail())
    cout << num << endl;
  
}
int main() {
  string str = "12 34 test 5";
  extractNumber(str);
  return 0;
}

在这个示例中,我们首先将字符串流与字符串绑定并创建一个整数型变量num,然后通过读取流提取所有的整数并输出到控制台中。

2.使用循环

使用循环遍历字符串的每个字符,并将数字字符转换为数字存储到新的变量中。示例代码如下:

#include <iostream>
#include <string>
using namespace std;
void extractNumber(string str) {
  int num = 0;
  for (int i = 0; i < str.length(); i++) {
    if (isdigit(str[i])) {
      num = num * 10 + (str[i] - '0');
    }
    else {
      if (num != 0)
        cout << num << endl;
        num = 0;
      
    }
  }
  if (num != 0)
    cout << num << endl;
  
}
int main() {
  string str = "12 34 test 5";
  extractNumber(str);
  return 0;
}

在这个示例中,我们首先定义一个新的整数型变量num,然后使用循环遍历字符串中的每个字符。当遇到数字字符时,我们将其转换为数字并存储到num变量中,以便最终输出。非数字字符会导致num变量归零,并将其中的数字输出。

总之,提取字符串中的数字在C++中是一种非常常见和重要的操作。有很多方法可以实现,例如使用字符串流或循环遍历等方法。开发人员可以根据自己的需要选择最适合的方法,并将其整合到自己的代码中。

  
  

评论区