如何将通配符与字符串::查找一起使用
How can I use wildcards with string::find?
我希望能够在string::find
中使用通配符,然后获取该通配符位置的内容。
例如:
if (string::npos !=input.find("How is * doing?")
{
cout<<"(the wildcard) is doing fine."<<endl;
}
因此,如果我问"妈妈过得怎么样?",输出将是"妈妈做得很好"。
我将为此使用哪些库,或者我将如何手动编写代码?如果我应该使用 AIML,AIML 可以执行.bat文件吗?
关于您关于如何手动执行此操作的问题,我将通过这个简单的代码为您提供一个想法,它解决了您在问题中给出的示例。
#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 finen";
}
}
您可以轻松修改此想法以满足您的需求。否则,请按照src
给出的答案进行操作
C++ 2011 提供了一个正则表达式库。如果你不能使用C++ 2011,你可以使用Boost.Regex库或任何C库,如PCRE。
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 在C++中查找文件
- 模板元程序查找相似的连续类型名称
- 在UNIX系统中使用DIR查找文件的字节大小
- 如何将enable-if与模板参数和参数包一起使用
- 如何将PERF_AMPLE_READ与mmap一起使用
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 查找最接近的大于当前数字的数字的索引
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 查找后更改类变量
- 使用正则表达式regex_search在字符串中查找字符串
- 如何将C++中的库和头与MinGW一起使用
- 使用gcc从静态链接的文件中查找可选符号
- 在C++中查找范围的长度
- 将--whole archive链接器选项与CMake和具有其他库依赖项的库一起使用
- 为什么我不能将 rand() 与数组的大小一起使用?
- 将查找与 QAssociaciativeIterable 或 QSequentialIterable 一起使用,同时避免
- 如何将"查找"和"substr"函数与向量一起使用?
- C 与查找功能一起使用时,迭代器为什么行为会有所不同
- 如何将通配符与字符串::查找一起使用