c++ - 在 C++ 机制中验证字符串

标签 c++ string validation logic

我正在搜索以验证 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/

相关文章:

java - 使用子字符串拆分字符串

c++ - 将一个c++字符串分成两部分

python - 将列表列表的数据从字符串格式转换为列表

node.js - 如何在 nodejs 中使用 avro 模式验证 json,它可以返回发生数据错误的错误列表

c++ - 结构内部的 union ——如何做指定的初始值设定项?

c++ - 我仍然可以从 catch block 中调用的函数中重新抛出异常吗?

c++ - 在头文件中包含 std::vector 会导致模板实例化错误

c++ - 在空 map 上调用 clear 时崩溃

validation - 在域驱动设计中应该将输入验证放在哪里?

php - 如何插入我的验证信息? (SQL, PHP)