holyya.com
2025-09-04 22:12:15 Thursday
登录
文章检索 我的文章 写文章
C++ 如何提取字符串中的数字?
2023-06-28 15:05:27 深夜i     --     --
C++ 字符串 提取 数字

在C++中,提取字符串中的数字是一项常见的操作,尤其在处理文本数据时。最常见的方法是使用字符串流。下面是使用字符串流来提取字符串中的数字的步骤。

1. 包含头文件

首先,我们需要包含以下两个头文件:


#include <sstream> // 字符串流头文件

#include <string> // 字符串头文件

2. 创建字符串流

接下来,我们需要创建一个字符串流,将待处理的字符串作为流输入。


std::string myString = "123abc456def789";

std::stringstream ss(myString);

上述代码中,myString是待处理的字符串,stringstream ss是创建的字符串流对象,将myString作为其输入。

3. 提取数字

使用字符串流对象ss提取数字的方法有两种,分别为使用提取符号“>>”和使用getline函数。

① 使用提取符号“>>”

使用提取符号“>>”从字符串流中提取数字序列。


int x;

while(ss >> x)

  // 处理提取出的数字x

上述代码中使用while循环不断提取数字,直到字符串流中没有数字为止。

② 使用getline函数

使用getline函数从字符串流中提取数字序列,其参数为字符串、字符分割符和字符存储数组。


std::string numStr;

while(getline(ss, numStr, ' ')) {

  int x = std::stoi(numStr); // stoi函数将提取的字符串转化为整数

  // 处理提取出的数字x

}

getline函数会将字符串流中的数字提取到numStr字符串中,以空格为分割符,直到字符串流中没有数字为止。然后使用stoi函数将提取的字符串转化为整数。

综上所述,使用字符串流来提取字符串中的数字是一项简单而实用的操作,可以用于取代复杂的正则表达式或手动扫描字符串的方式。

  
  

评论区

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