使用 std::string 的 rfind 重载来检查前缀并将子字符串转换为 Int
确定 C std::string 是否开始使用特定字符串并将子字符串转换为整数,您可以利用重载的 rfind 函数。
检查字符串前缀
使用接受搜索的 rfind 重载位置参数(pos)。将此参数设置为零将搜索限制为字符串的开头:
<code class="cpp">std::string s = "tititoto"; if (s.rfind("titi", 0) == 0) { // The string s starts with the "titi" prefix. }</code>
将子字符串转换为 Int
提取已知前缀后的子字符串并转换如果将其转换为整数,则可以使用 rfind 和 substr 的组合:
<code class="cpp">std::string arg = "--foo=98"; size_t pos = arg.rfind("--foo="); if (pos != std::string::npos) { std::string fooValue = arg.substr(pos + len("--foo=")); int value = std::stoi(fooValue); }</code>
在此示例中,如果 arg 为“--foo=98”,则变量值将被分配整数值 98。
STL 优势
这种方法避免了对 Boost 等外部库的需要。它利用 STL 提供的标准字符串操作,实现简单且高效。
C 20 简化
在 C 20 及更高版本中,std:: string 和 std::string_view 类引入了starts_with方法,这使得检查前缀变得更加简单:
<code class="cpp">std::string s = "tititoto"; if (s.starts_with("titi")) { // The string s starts with the "titi" prefix. }</code>
以上是如何使用 std::string\ 的 rfind 检查前缀并将子字符串转换为整数?的详细内容。更多信息请关注PHP中文网其他相关文章!