我正在搜索以验证 C++ 中的字符串,我发现了这种机制。 Validate 换句话说,如果有名为 name 的变量,用户将无法向该变量输入数字,只允许输入字符。
发现的机制:
if(std::string::npos != variable.find_first_of("0123456789")
谁能给我解释一下上述机制背后的逻辑。我不明白 npos 是什么意思?我搜索了答案,但找不到我想要的答案。
感谢您的宝贵时间。
最佳答案
std::string::npos
是一个常量,在此上下文中表示“未找到”。 find_first_of
函数从作为参数传递的字符串中搜索第一次出现的字符。如果未找到(意味着 variable
中没有数字),则返回 npos
。
代码使用了一些人认为有用的约定——而不是
if (f() != CONSTANT)
他们写
if (CONSTANT != f())
据推测,当使用 =
而不是 !=
时,可以避免出现问题,因此它是赋值而不是比较。对于今天的编译器和警告,我发现这个约定不值得,但有些人的意见不同。
关于c++ - 在 C++ 机制中验证字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23491931/