Skip to content

Instantly share code, notes, and snippets.

@juanfal
Last active November 19, 2024 15:39
Show Gist options
  • Save juanfal/fe6f9f7369ff4358c80725781949a6ca to your computer and use it in GitHub Desktop.
Save juanfal/fe6f9f7369ff4358c80725781949a6ca to your computer and use it in GitHub Desktop.
substrneg
// substrneg.cpp
// juanfc 2024-11-11
// https://gist.github.com/juanfal/fe6f9f7369ff4358c80725781949a6ca
#include <iostream>
using namespace std;
int main()
{
void tryThis(string s, int from, int end = -1);
tryThis("abcdefgh", 2); // "cdefgh"
tryThis("abcdefgh", -2); // "gh"
tryThis("abcdefgh", -1); // "h"
tryThis("abcdefgh", -3, -2); // "fg"
tryThis("abcdefgh", 4, 4); // "e"
tryThis("abcdefgh", 4, -2); // "efg"
tryThis("abcdefgh", 4, 3); // ""
tryThis("abcdefgh", 40, 50); // ""
return 0;
}
string substrneg(string s, int from, int end = -1)
{
string r;
int len = s.length();
if (from < 0)
from = len + from;
if (end < 0)
end = len + end;
if (end > len - 1)
end = len - 1;
for (int i = from; i <= end; ++i)
r += s[i];
return r;
}
void tryThis(string s, int from, int to)
{
string substrneg(string s, int from, int end = -1);
cout << "substrneg(\"" << s << "\", " << from << ", " << to << "): \""
<< substrneg(s, from, to) << '"' << endl;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment