在C++中查找字符串中的子字符串
Finding substring in String in C++
我正在从文本文件中读取行,以查找它们的状态,该状态有3个选项,可以是OUT、Discontined或Cancelled
我是这样做的:
ifstream inFile("DVD_list.txt");
string line;
char status;
while ( getline (inFile,line) ) {
std::size_t pos = line.find("Out" || "Discontinued"|| "Cancelled");
}
return 0;
如何将find函数与或表达式一起使用?
if((pos = line.find("Out")) != string::npos)
{
// handle Out
}
else if((pos = line.find("Discontinued")) != string::npos)
{
// handle Discontinued
}
else if((pos = line.find("Cancelled")) != string::npos)
{
// handle Cancelled
}
else
{
// not found
}
可能,您需要确保没有检测到假阳性,例如在"某个样本文本中没有输出"!
std::istringstream is( "I hope it won't rain today" );
auto x = std::find( std::istream_iterator<std::string>( is ),
std::istream_iterator<std::string>(),
"rain" );
if ( x != std::istream_iterator<std::string>() ) std::cout << *x << std::endl;
这是一个示例代码。
find()只能匹配一个字符串常量,您必须调用它三次。但是,您可以使用正则表达式来匹配这三个单词,并一次处理整行。
相关文章:
- 使用正则表达式regex_search在字符串中查找字符串
- 按类型与字符串查找对象
- 使用C RTTI(内置)通过字符串查找功能指针
- 关于获取行和字符串查找函数的问题
- 字符串查找方法找不到第一字母
- C++ 字符串.查找()
- 遇到字符串::查找的问题
- 将一个数组作为子字符串查找到另一个数组中
- 字符串查找第一个非的 C++ 问题
- 如何将通配符与字符串::查找一起使用
- 字符串::查找问题 (C++)
- 性能标准::strstr vs. 标准::字符串::查找
- C++字符串::查找崩溃应用程序
- 使用字符串查找单词的正确方法是什么
- 如何在<string>没有 std::string 中介的情况下制作一个支持通过 C 字符串查找的集合?
- 使用C++根据行中的第一个字符串查找行(仅一个)
- Borland字符串::查找bug
- std::map如何通过字符串查找元素
- 字符串查找函数返回奇数
- 如何使用子字符串查找数字行的正确部分