gpt4 book ai didi

c++字符串操作以在字符串中查找相同的开始/结束范围

转载 作者:行者123 更新时间:2023-11-28 03:35:16 26 4
gpt4 key购买 nike

我有一个范围像 eg 的字符串。 “0-0,4-7,9-9”,我需要找出所有具有相同起点和终点的范围并将它们修改为“0,4-7,9 ”。

我对字符串操作和 C++ 不太放心,因此需要一些帮助。

输入字符串:“0-0,2-7,8-8,88-108”输出字符串:“0,2-7,8,88-108”

最大数字值只能为 4000。

PHP 中,我需要在循环中做这样的事情:

$pos = strpos($vlan_ranges, ",");
$number_range = strtok($number_ranges, ",");
$number = split("-", $range);
$number_start = $number[0];
$number_end = $number[1];

但不知道如何在 C++ 中完成此操作。不熟悉c++语法。非常感谢任何帮助。

补充:我必须单独使用标准 String 类。我不能使用字符串操作引擎。

最佳答案

我认为这样的事情可行:

std::string str = "1-1,2-3,4-4,...";
size_t number_digits;

for (size_t i = 0; i < str.size(); ++i)
{
if(str.find("-", i)) != std::string::npos))
{
number_digits = str.find_first_of(",", i) - i - 1;
if (str.substr(i - number_digits, i - 1) == str.substr(i + 1, i + number_digits))
str.erase(i-number_digits, number_digits + 1);
}
}

编辑:实际上我发布了一个无限循环。现已修复。

关于c++字符串操作以在字符串中查找相同的开始/结束范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11099476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com