我是c ++的新手。如何搜索字符串以查找该字符串的某个部分?
例如,如果我搜索了150磅的用户输入字符串并试图寻找" lbs"我返回一个真正的布尔值?
我尝试使用正则表达式,但我已经卡住了
答案 0 :(得分:2)
真正的快速回答。
bool isLbs(string s){
return (s.find("lbs") != string::npos);
}
这会奏效。但你怎么问。
首先,我建议先阅读this。
现在真的很简单。 C ++中的类std :: String有一个名为find的函数,可用于检查字符串中是否存在字符串。它返回的类型是无符号整数类型,因此要将其转换为bool,您需要检查str.find(“searchWord”)!= string :: npos。因为如果它确实等于string :: npos,那么它在字符串中不存在。
正如我所说,随时可以在cplusplus.com上阅读更深入的文档。
链接:http://www.cplusplus.com/reference/string/string/find/
P.S如果传递“3213lbs2313”或“lbs1234124”,上面的函数也会返回true。因此,只要它在字符串内部,它就不关心lbs在哪里。如果您只想检查它是否在最后,那么您可以检查if (s.substr(s.size()-3) == "lbs")
调用std :: String类的另一个函数,该函数返回字符串的最后3个字符并检查它们是否等于“磅”。