如何检查C++<string>是否以某个字符串开始?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1796)

如何在C++中执行以下操作(Python伪代码)?

if argv[1].startswith('--foo='):
    foo_value = int(argv[1][len('--foo='):])
提问于
用户回答回答于

可以尝试下这个:

   std::string prefix("--foo=");
   if (!arg.compare(0, prefix.size(), prefix))
      foo_value = atoi(arg.substr(prefix.size()).c_str());

寻找像Boost这样的库。

用户回答回答于

如果你用的是Boost,可以用Boost字符串算法

#include <boost/algorithm/string/predicate.hpp>
#include <boost/lexical_cast.hpp>

try {    
    if (boost::starts_with(argv[1], "--foo="))
        foo_value = boost::lexical_cast<int>(argv[1]+6);
} catch (boost::bad_lexical_cast) {
    // bad parameter
}

和大多数Boost库一样,字符串算法和词法转换都是类似的

扫码关注云+社区

领取腾讯云代金券