こんにちは私は次のコードでstd::out_of_range:basic_string::substr を押しています。それを修正するために一生懸命努力してきましたが、それを成し遂げることができません。
std::string orig_str = "1-1,2-3,4-4,56-75,77-77";
size_t number_digits;
for (size_t i = 0; i < orig_str.size(); ++i)
{
number_digits = orig_str.find_first_of(",", i) - i - 1;
if(orig_str.find("-", i) != std::string::npos)
if (orig_str.substr(i - number_digits, i - 1) == orig_str.substr(i + 1, i + number_digits))
orig_str.erase(i-number_digits, number_digits + 1);
}
基本的に、このコードは文字列を操作して一部の範囲を削除します。予想される動作は次のとおりです。 入力文字列: "0-0,2-7,88-88"出力文字列: "0,2-7,88"