21xrx.com
2024-12-27 18:59:23 Friday
登录
文章检索 我的文章 写文章
C++查找字符串中的数字
2023-07-01 20:16:45 深夜i     --     --
C++ find string digits numbers

在C++程序设计中,有时会遇到需要查找字符串中的数字的情况,如字符串“abc123def456ghi789”中的数字就需要被找出来。

一种方法是使用isdigit函数,该函数可以判断一个字符是否为数字。通过循环遍历字符串中的每一个字符,判断是否为数字,如果是数字,就将其加入到一个字符串中,最终的串就是所要查找的数字串。

下面是使用isdigit函数查找数字串的代码实现:


#include <iostream>

#include <string>

using namespace std;

int main()

{

  string str = "abc123def456ghi789";

  string num_str = "";

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

  {

    if (isdigit(str[i]))

    {

      num_str += str[i];

    }

  }

  cout << num_str << endl;

  return 0;

}

另一种方法是使用正则表达式,利用正则表达式可以将字符串中的数字串全部查找出来,然后再进行相关操作。

下面是使用正则表达式查找数字串的代码实现:


#include <iostream>

#include <string>

#include <regex>

using namespace std;

int main()

{

  string str = "abc123def456ghi789";

  regex pattern("\\d+"); // 匹配数字串

  smatch results;

  string num_str = "";

  while (regex_search(str, results, pattern))

  {

    num_str += results[0].str();

    str = results.suffix().str(); // 从剩余字符串中进行查找

  }

  cout << num_str << endl;

  return 0;

}

综上所述,使用isdigit函数或正则表达式都可以方便地查找字符串中的数字,具体选择哪种方法,需要根据需求和实际情况进行决定。

  
  

评论区

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