#include <stdio.h>
#include <string>
int main(void)
{
printf("%u\n", std::string("\n").find_first_not_of(" \t\n\v\f\r", 0, 1));
}
Run Code Online (Sandbox Code Playgroud)
以下程序打印0,而不是我期望的std :: string :: npos.为什么?
您的电话匹配:
size_t find_first_not_of ( const char* s, size_t pos, size_t n ) const;
Run Code Online (Sandbox Code Playgroud)
n
是s中的字符数,你传递1.所以,你正在寻找第一个不是空格的字符.您的" \t\n\v\f\r"
字符串的其余部分将被忽略.
可能你只想要:
find_first_not_of(" \t\n\v\f\r")
Run Code Online (Sandbox Code Playgroud)