find 和 find_first_of查找结果不同!
刚才遇到一奇怪的事啊。
字符串为 “qwertyuio\n”(回车符)
string::size_type pos = find("\r\n"),
pos == string::npos(查不到,正常逻辑)
但是
string::size_type pos = find_first_of("\r\n"),
pos != string::npos(居然能查到!?!)
求解,为什么用find_first_of不会显示查询不到呢?
实际环境为linux中,文件中的内容,因为linux中,换行都是\n 。
谢谢!
[解决办法]
http://en.cppreference.com/w/cpp/string/basic_string/find_first_of
[解决办法]
find是匹配整个子串
find_first_of是搜索子串中的字符首次出现的位置。只要找到1个字符就算找到了。
[解决办法]
http://www.cplusplus.com
[解决办法]
find("\r\n"),搜索的是"\r\n"这个字符串
find_first_of("\r\n"),搜索的是'\r'和'\n'这两个字符,找到其中一个就算找到了
如果字符串里有多个字符也同理