Skip to content

Instantly share code, notes, and snippets.

@tsibley
Last active October 7, 2022 22:18
Show Gist options
  • Select an option

  • Save tsibley/549d4048db56ef8626d08b31db5e1ef0 to your computer and use it in GitHub Desktop.

Select an option

Save tsibley/549d4048db56ef8626d08b31db5e1ef0 to your computer and use it in GitHub Desktop.
Run locally with `g++ bug.c && ./a.out` or run online at https://coliru.stacked-crooked.com/a/785c49eb44c427fc
#include <iostream>
#include <string>
int main()
{
std::string data = "test";
std::string search = "";
std::string replace = "";
std::cout << "data = «" << data << "» (size = " << data.size() << ")\n";
std::cout << "search = «" << search << "» (size = " << search.size() << ")\n";
std::cout << "replace = «" << replace << "» (size = " << replace.size() << ")\n";
std::cout << "----\n";
std::size_t pos = data.find(search);
std::cout << "pos = " << pos << "\n";
std::cout << "pos == npos? ";
if (pos == std::string::npos)
std::cout << "yep\n";
else
std::cout << "nope\n";
std::cout << "----\n";
std::cout << "replace(" << pos << ", " << search.size() << ", \"" << replace << "\")\n";
data.replace(pos, search.size(), replace);
std::cout << "data = «" << data << "» (size = " << data.size() << ")\n";
std::cout << "----\n";
pos = data.find(search, pos + replace.size());
std::cout << "pos = " << pos << "\n";
std::cout << "pos == npos? ";
if (pos == std::string::npos)
std::cout << "yep\n";
else
std::cout << "nope\n";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment