21xrx.com
2024-09-20 00:33:22 Friday
登录
文章检索 我的文章 写文章
C++中如何提取字符串中的数字
2023-06-24 13:59:04 深夜i     --     --
C++ 字符串 数字 提取

在C++中操作字符串是常见的操作,而在字符串中提取数字也是一个实用的技巧。在一些实际编程中,我们常常需要从字符串中提取数字并进行计算或者其他处理。下面将介绍在C++中如何提取字符串中的数字。

在C++中提取字符串中的数字主要有以下两种方法:

一、使用标准库函数:将字符串转换成数字类型

我们可以使用C++标准库函数stoi,stod等将字符串类型转换成数字类型,然后进行计算或其他操作。这些函数会把字符串转换成相应的数字类型,如果字符串中含有非数字字符,则转换结束,函数会在此结束转换。以下是示例代码:


#include<sstream>

#include<iostream>

using namespace std;

int main(){

  string str("123456"); // 定义一个字符串

  int num = stoi(str);  // 使用stoi将str转换成数字类型

  double num1 = stod(str); // 使用stod将str转换成浮点型类型

  cout << num << endl << num1 << endl; // 输出转换后的数字

  return 0;

}

二、查找字符串中的数字

如果字符串中只包含数字,那么可以直接遍历字符串,取得数字。而如果字符串中有非数字字符,则我们需要提取字符串中所有数字。这里我们可以使用另一个标准库函数find_first_of来查找字符串中的数字,并取得它们。具体步骤如下:

1. 遍历字符串中的每一个字符。

2. 对于每个字符进行判断:

- 如果它是数字,则取出整个数字,存储在数组或其他数据结构中。

- 如果它不是数字,则继续向下遍历。

以下是示例代码:


#include<iostream>

#include<string>

#include<cctype>

using namespace std;

int main(){

  string str("Hi,My number is 123, I'm 18 years old");

  string numstr(""); // 存储提取的数字

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

    if(isdigit(str[i])){

      numstr += str[i];

    }

  }

  cout << "The number is: " << numstr << endl;

  return 0;

}

综上所述,以上就是在C++中提取字符串中的数字的两种方法。选用那种方法取决于具体情况,通常情况下我们可以使用标准库函数来进行转换操作。如果需要提取字符串中的所有数字,则我们需要使用find_first_of函数来进行查找操作。通过这些方法,我们可以方便地从字符串中提取数字,进行计算和其他操作。

  
  

评论区

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