【发布时间】:2018-06-09 15:09:36
【问题描述】:
下面是在字符串中查找 2401 的简单代码。我不知道那个数字是 2401,它可以是 0-9 之间的任何数字。要找到我想使用“DDDD”的 4 位数字。字母 D 将找到一个介于 0->9 之间的数字。我如何做到这一点,以便编译器意识到字母 D 是查找 1 位数字的代码。
#include <string>
#include <iostream>
#include <vector>
using namespace std;
int main()
{
std::string pattern ;
std::getline(std::cin, pattern);
std::string sentence = "where 2401 is";
//std::getline(std::cin, sentence);
int a = sentence.find(pattern,0);
int b = pattern.length();
cout << sentence.substr(a,b) << endl;
//std::cout << sentence << "\n";
}
【问题讨论】:
-
试用 c++ 正则表达式库
#include <regex>并使用std::regex匹配模式 en.cppreference.com/w/cpp/regex -
您可以复制
sentence,将数字替换为“D”,然后在副本中搜索“DDDD”,如果找到,则返回原始中的相应子字符串。 -
我喜欢这个主意,会去看看!