diff options
author | Erik Andersson <erik@packy.se> | 2016-11-22 23:39:22 +0100 |
---|---|---|
committer | Erik Andersson <erik@packy.se> | 2016-11-22 23:39:22 +0100 |
commit | e44ac0da6b8a57f56bbd97f816812294649d88f3 (patch) | |
tree | 5a23cfa814e8aab194557325b78abcf7a0fef9cf /src/misc_functions.cpp | |
parent | 5075582f37121bf6dc092ef1574a296086bdb13e (diff) | |
download | ocelot-e44ac0da6b8a57f56bbd97f816812294649d88f3.zip ocelot-e44ac0da6b8a57f56bbd97f816812294649d88f3.tar.gz ocelot-e44ac0da6b8a57f56bbd97f816812294649d88f3.tar.bz2 |
Ocelot v0.1-alphav0.1-alpha
Diffstat (limited to 'src/misc_functions.cpp')
-rw-r--r-- | src/misc_functions.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/misc_functions.cpp b/src/misc_functions.cpp new file mode 100644 index 0000000..0e00bdf --- /dev/null +++ b/src/misc_functions.cpp @@ -0,0 +1,58 @@ +#include <string> +#include <iostream> +#include <sstream> + +long strtolong(const std::string& str) { + std::istringstream stream (str); + long i = 0; + stream >> i; + return i; +} + +long long strtolonglong(const std::string& str) { + std::istringstream stream (str); + long long i = 0; + stream >> i; + return i; +} + + +std::string inttostr(const int i) { + std::string str; + std::stringstream out; + out << i; + str = out.str(); + return str; +} + +std::string hex_decode(const std::string &in) { + std::string out; + out.reserve(20); + unsigned int in_length = in.length(); + for(unsigned int i = 0; i < in_length; i++) { + unsigned char x = '0'; + if(in[i] == '%' && (i + 2) < in_length) { + i++; + if(in[i] >= 'a' && in[i] <= 'f') { + x = static_cast<unsigned char>((in[i]-87) << 4); + } else if(in[i] >= 'A' && in[i] <= 'F') { + x = static_cast<unsigned char>((in[i]-55) << 4); + } else if(in[i] >= '0' && in[i] <= '9') { + x = static_cast<unsigned char>((in[i]-48) << 4); + } + + i++; + if(in[i] >= 'a' && in[i] <= 'f') { + x += static_cast<unsigned char>(in[i]-87); + } else if(in[i] >= 'A' && in[i] <= 'F') { + x += static_cast<unsigned char>(in[i]-55); + } else if(in[i] >= '0' && in[i] <= '9') { + x += static_cast<unsigned char>(in[i]-48); + } + } else { + x = in[i]; + } + out.push_back(x); + } + return out; +} |