在 C 中高效验证前缀并将子字符串转换为整数
需要检查字符串是否以特定前缀开头并转换子字符串转换为整数是编程中的常见任务。在Python 中,可以使用startswith() 和int() 函数轻松实现这一点。然而,在 C 中实现类似的功能需要不同的方法。
要检查 C std::string 是否以某个字符串开头,可以使用 rfind() 函数,并将位置参数 pos 设置为零。这将搜索限制为仅匹配字符串开头或更早的前缀。例如,要检查 argv[1] 是否以“--foo=”开头:
if (argv[1].rfind("--foo=", 0) == 0) { // argv[1] starts with "--foo=" }
要将子字符串转换为整数,可以使用 stoi() 函数。但是,由于 rfind() 返回一个位置,因此您需要先提取子字符串。这是更新的 Python 伪代码:
if argv[1].startswith('--foo='): foo_value = int(argv[1]['--foo='.len():])
在 C 中,这将转换为:
size_t pos = argv[1].rfind("--foo=", 0); if (pos != std::string::npos) { foo_value = std::stoi(argv[1].substr(pos + 6)); }
这种方法高效且简单,不需要外部库或额外的复杂性。它为 C 中的前缀检查和子字符串转换提供了简洁有效的解决方案。
以上是如何在 C 中高效验证前缀并将子字符串转换为整数?的详细内容。更多信息请关注PHP中文网其他相关文章!