C++ 如何将通配符与string::find一起使用?

C++ 如何将通配符与string::find一起使用?,c++,wildcard,C++,Wildcard,我希望能够在string::find中使用通配符,然后获取该通配符中的内容 例如: if (string::npos !=input.find("How is * doing?") { cout<<"(the wildcard) is doing fine."<<endl; } if(string::npos!=input.find(“最近怎么样?”) { 如果你不能使用C++ 2011,你可以使用库或任何C++库,如C++ 2011提供了一个。如果你不能使用

我希望能够在
string::find
中使用通配符,然后获取该通配符中的内容

例如:

if (string::npos !=input.find("How is * doing?")
{
     cout<<"(the wildcard) is doing fine."<<endl;
}
if(string::npos!=input.find(“最近怎么样?”)
{

如果你不能使用C++ 2011,你可以使用库或任何C++库,如

C++ 2011提供了一个。如果你不能使用C++ 2011,你可以使用库或任何C库,比如

关于你如何手工完成这个问题,我会用这个简单的代码给你一个想法,它解决了这个例子。你在问题中给出了答案

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string expr="How is * doing?";
    string input="How is Mom doing?";
    int wildcard_pos=expr.find("*");
    if(wildcard_pos!=string::npos)
    {
        int foo=input.find(expr.substr(0,wildcard_pos)),bar=input.find(expr.substr(wildcard_pos+1));
        if(foo!=string::npos && bar!=string::npos)
        cout<<input.substr(wildcard_pos,bar-wildcard_pos)<<" is doing fine\n";
    }
}
#包括
#包括
使用名称空间std;
int main()
{
string expr=“最近怎么样?”;
string input=“妈妈怎么样了?”;
int通配符位置=表达式查找(“*”);
if(通配符位置!=字符串::npos)
{
intfoo=input.find(expr.substr(0,通配符位置)),bar=input.find(expr.substr(通配符位置+1));
if(foo!=string::npos&&bar!=string::npos)

cout关于你关于如何手动操作的问题,我将用这个简单的代码给你一个想法,它解决了你在问题中给出的示例

#include<iostream>
#include<string>
using namespace std;
int main()
{
    string expr="How is * doing?";
    string input="How is Mom doing?";
    int wildcard_pos=expr.find("*");
    if(wildcard_pos!=string::npos)
    {
        int foo=input.find(expr.substr(0,wildcard_pos)),bar=input.find(expr.substr(wildcard_pos+1));
        if(foo!=string::npos && bar!=string::npos)
        cout<<input.substr(wildcard_pos,bar-wildcard_pos)<<" is doing fine\n";
    }
}
#包括
#包括
使用名称空间std;
int main()
{
string expr=“最近怎么样?”;
string input=“妈妈怎么样了?”;
int通配符位置=表达式查找(“*”);
if(通配符位置!=字符串::npos)
{
intfoo=input.find(expr.substr(0,通配符位置)),bar=input.find(expr.substr(通配符位置+1));
if(foo!=string::npos&&bar!=string::npos)

CUCT++没有足够的级别来实现这一点,没有某种图书馆,你更像是AIMLYou需要手工编写代码,或者使用正则表达式库。我认为,为你的情况编写一个代码不应该是困难的。C++没有足够高的级别来实现这一点,而不需要某种天秤。RY您现在所做的似乎更像AIMLYou需要手动编写代码来完成此操作,或者使用正则表达式库。我想为您的案例手动编写代码应该不难。谢谢,我会研究此问题。谢谢,我会研究此问题。