21xrx.com
2024-12-22 20:38:57 Sunday
登录
文章检索 我的文章 写文章
C++提取字符串中的数字作为整数输出
2023-07-09 07:12:29 深夜i     --     --
C++ 字符串 数字 整数输出 提取

在C++编程中,经常需要从一个包含数字和其他字符的字符串中提取数字并将其作为整数输出。本文将介绍如何使用C++的字符串处理函数来提取字符串中的数字,以便生成整数输出。

C++中的字符串处理类是string,它提供了多种方法来处理字符串。这些方法中的一些可以用来提取字符串中的数字。下面是一些实现的方法:

1. 使用循环和isdigit()函数来处理字符串中的每个字符。isdigit()函数是一个C++内置函数,它可以检查给定的字符是否为数字。通过循环,可以遍历字符串中的每个字符,并使用isdigit()函数来检查字符是否为数字。如果字符是数字,则可以将其添加到一个临时字符串中。当遍历整个字符串后,将临时字符串中的数字转换为整数值。

2. 使用C++的stringstream类来将字符串转换为流对象,然后使用流提取运算符>>来提取数字。stringstream类可以将字符串转换为流对象。一旦将字符串转换为流对象,就可以使用流提取运算符>>来从流中读取数字。提取的每个数字都可以将其添加到一个临时变量中,并在完成提取后将临时变量转换为整数值。

下面是一些代码示例,展示如何使用以上方法来提取字符串中的数字和将其转换为整数:

方法1代码示例:


#include <iostream>

#include <string>

using namespace std;

int main () {

 string str = "abc123def456";

 string tempStr = "";

 int num = 0;

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

  if(isdigit(str[i])) {

   tempStr += str[i];

  } else if (tempStr != "") {

   num = atoi(tempStr.c_str());

   cout << num << endl;

   tempStr = "";

  }

 }

 if (tempStr != "") {

  num = atoi(tempStr.c_str());

  cout << num << endl;

 }

 return 0;

}

方法2代码示例:


#include <iostream>

#include <string>

#include <sstream>

using namespace std;

int main () {

 string str = "abc123def456";

 stringstream ss(str);

 int num;

 while (ss >> num)

  cout << num << endl;

 

 return 0;

}

在以上示例中,字符串"abc123def456"中的数字被提取并在屏幕上输出。这是C++中提取字符串中的数字的两种不同的方法。可以选择适合自己的方法来处理自己的需求。无论使用哪种方法,最终都可以将字符串中的数字提取并转换为整数输出。

  
  

评论区

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