【问题标题】:Can anyone explain how std::string::npos works? [duplicate]谁能解释 std::string::npos 是如何工作的? [复制]
【发布时间】:2021-03-11 01:36:21
【问题描述】:

无法理解以下代码的工作原理。

String::npos 

我不知道它是如何工作的。请任何人帮助我解决这个问题。

【问题讨论】:

  • 该代码无法编译。请参阅How to create a Minimal, Reproducible Example
  • 很明显,这段代码肯定比你所展示的更多。一些较早的代码必须在std::string 上调用find...() 方法并将结果保存到found 变量,如果在字符串中找不到搜索的数据,该变量将设置为npos。跨度>
  • “是否有任何返回值” -- 因为没有return 声明,我会选择“否”。我想从技术上讲,<< 运算符返回了一些值(一个值启用了运算符链,另一个未使用),但这可能不是您要问的。

标签: c++ c++11 c++14


【解决方案1】:

std::string::npos 返回一个整数值(-1),用于判断一个值是否在字符串中。

在此处提供的示例中:https://en.cppreference.com/w/cpp/string/basic_string/npos 您会看到作者使用 .find('a') 在字符串“test”中查找 'a' 字符。因为 char 'a' 在字符串中没有位置(npos 字面意思是 no position)它返回 -1

【讨论】:

  • 它不会“返回”任何东西,它是一个常数。此外,它必须是无符号的(因此不能具有值-1)。
  • 好的,谢谢...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多