首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++机制中的验证字符串

C++机制中的验证字符串
EN

Stack Overflow用户
提问于 2014-05-06 10:17:53
回答 3查看 376关注 0票数 0

我在c++中搜索以验证字符串,并找到了这种机制。换句话说,如果存在名为name的变量,则用户将不能只向变量输入数字,只允许字符。

发现的机制:

代码语言:javascript
复制
if(std::string::npos != variable.find_first_of("0123456789")

有人能解释一下上述机制背后的逻辑吗。我不明白非营利组织意味着什么?我找了一个答案,但找不到我想要的。

谢谢您抽时间见我。

EN

回答 3

Stack Overflow用户

发布于 2014-05-06 10:24:23

std::string::npos是一个常量,在这个上下文中,它的意思是“未找到”。find_first_of函数从作为参数传递的字符串中搜索字符的第一次出现。如果找不到(意味着variable中没有数字),则返回npos

代码使用了一些人认为有用的约定,而不是

代码语言:javascript
复制
if (f() != CONSTANT)

他们写

代码语言:javascript
复制
if (CONSTANT != f())

它被认为是为了避免问题的时候,而不是!=使用=,所以它是赋值而不是比较。对于今天的编译器和警告,我发现这个惯例不值得,但有些人的观点不同。

票数 3
EN

Stack Overflow用户

发布于 2014-05-06 10:22:58

从文件中:

std::string::npos

npos是一个静态成员常量值,对size_t类型的元素具有最大的可能值。 作为返回值,它通常用于表示不匹配。

如果没有找到匹配项,则函数返回字符串::npos。

该机制的逻辑是测试find_first_of是否返回npos以外的内容。在这种情况下,这意味着字符串包含来自字符串"0123456789"的至少一个字符。

票数 1
EN

Stack Overflow用户

发布于 2014-05-06 10:29:07

代码语言:javascript
复制
std::string::npos

表示std::string函数返回的不同类型的失败的常量。在这种情况下:没有发现这样的特征。

这个常量通常被定义为

代码语言:javascript
复制
static const size_type npos = -1;

string/npos

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23491931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档