Added padding functionality
This commit is contained in:
parent
88f0fdc840
commit
cca5439be1
BIN
Src/.StringTools.cpp.swp
Normal file
BIN
Src/.StringTools.cpp.swp
Normal file
Binary file not shown.
@ -95,7 +95,6 @@ std::string StringTools::Upper(const std::string& str) {
|
|||||||
|
|
||||||
std::vector<std::string> StringTools::Split(const std::string& str, const std::string& seperator) {
|
std::vector<std::string> StringTools::Split(const std::string& str, const std::string& seperator) {
|
||||||
std::vector<std::string> toRet;
|
std::vector<std::string> toRet;
|
||||||
|
|
||||||
// Quick-accept: str length is 0
|
// Quick-accept: str length is 0
|
||||||
if (str.length() == 0)
|
if (str.length() == 0)
|
||||||
toRet.push_back("");
|
toRet.push_back("");
|
||||||
@ -132,3 +131,25 @@ std::vector<std::string> StringTools::Split(const std::string& str, const std::s
|
|||||||
|
|
||||||
return toRet;
|
return toRet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string StringTools::PadLeft(const std::string& str, const char pad, const std::size_t len) {
|
||||||
|
std::stringstream ss;
|
||||||
|
|
||||||
|
for (std::size_t i = str.length(); i < len; i++)
|
||||||
|
ss << pad;
|
||||||
|
|
||||||
|
ss << str;
|
||||||
|
|
||||||
|
return ss.str();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string StringTools::PadRight(const std::string& str, const char pad, const std::size_t len) {
|
||||||
|
std::stringstream ss;
|
||||||
|
|
||||||
|
ss << str;
|
||||||
|
|
||||||
|
for (std::size_t i = str.length(); i < len; i++)
|
||||||
|
ss << pad;
|
||||||
|
|
||||||
|
return ss.str();
|
||||||
|
}
|
||||||
|
@ -29,6 +29,12 @@ public:
|
|||||||
//! Will split a string by a string seperator
|
//! Will split a string by a string seperator
|
||||||
static std::vector<std::string> Split(const std::string& str, const std::string& seperator);
|
static std::vector<std::string> Split(const std::string& str, const std::string& seperator);
|
||||||
|
|
||||||
|
//! Will pad a string to the left to length l
|
||||||
|
static std::string PadLeft(const std::string& str, const char pad, const std::size_t len);
|
||||||
|
|
||||||
|
//! Will pad a string to the right to length l
|
||||||
|
static std::string PadRight(const std::string& str, const char pad, const std::size_t len);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// No instanciation! >:(
|
// No instanciation! >:(
|
||||||
StringTools();
|
StringTools();
|
||||||
|
BIN
Test/.String__PadRight.cpp.swp
Normal file
BIN
Test/.String__PadRight.cpp.swp
Normal file
Binary file not shown.
@ -16,6 +16,7 @@ add_executable(Test
|
|||||||
String__Replace_Char.cpp
|
String__Replace_Char.cpp
|
||||||
String__Replace_String.cpp
|
String__Replace_String.cpp
|
||||||
String__Split.cpp
|
String__Split.cpp
|
||||||
|
String__PadLeft.cpp
|
||||||
|
|
||||||
# CharTools-Tests
|
# CharTools-Tests
|
||||||
Char__IsVowel.cpp
|
Char__IsVowel.cpp
|
||||||
|
44
Test/String__PadLeft.cpp
Normal file
44
Test/String__PadLeft.cpp
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
#include <StringTools.h>
|
||||||
|
#include "Catch2.h"
|
||||||
|
|
||||||
|
// Tests that padding to a length shorter adds no padding
|
||||||
|
TEST_CASE(__FILE__"/PadToShorterLength", "[Strings][PadLeft]")
|
||||||
|
{
|
||||||
|
// Setup
|
||||||
|
const std::string in = "hello";
|
||||||
|
|
||||||
|
// Exercise
|
||||||
|
const std::string out = StringTools::PadLeft(in, '0', 3);
|
||||||
|
|
||||||
|
// Verify
|
||||||
|
REQUIRE(out == "hello");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tests that padding to a length equal adds no padding
|
||||||
|
TEST_CASE(__FILE__"/PadToEqualLength", "[Strings][PadLeft]")
|
||||||
|
{
|
||||||
|
// Setup
|
||||||
|
const std::string in = "hello";
|
||||||
|
|
||||||
|
// Exercise
|
||||||
|
const std::string out = StringTools::PadLeft(in, '0', 5);
|
||||||
|
|
||||||
|
// Verify
|
||||||
|
REQUIRE(out == "hello");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tests that adding padding works
|
||||||
|
TEST_CASE(__FILE__"/Padding", "[Strings][PadLeft]")
|
||||||
|
{
|
||||||
|
// Setup
|
||||||
|
const std::string in = "hello";
|
||||||
|
|
||||||
|
// Exercise
|
||||||
|
const std::string out = StringTools::PadLeft(in, '0', 7);
|
||||||
|
|
||||||
|
// Verify
|
||||||
|
REQUIRE(out == "00hello");
|
||||||
|
return;
|
||||||
|
}
|
44
Test/String__PadRight.cpp
Normal file
44
Test/String__PadRight.cpp
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
#include <StringTools.h>
|
||||||
|
#include "Catch2.h"
|
||||||
|
|
||||||
|
// Tests that padding to a length shorter adds no padding
|
||||||
|
TEST_CASE(__FILE__"/PadToShorterLength", "[Strings][PadRight]")
|
||||||
|
{
|
||||||
|
// Setup
|
||||||
|
const std::string in = "hello";
|
||||||
|
|
||||||
|
// Exercise
|
||||||
|
const std::string out = StringTools::PadRight(in, '0', 3);
|
||||||
|
|
||||||
|
// Verify
|
||||||
|
REQUIRE(out == "hello");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tests that padding to a length equal adds no padding
|
||||||
|
TEST_CASE(__FILE__"/PadToEqualLength", "[Strings][PadRight]")
|
||||||
|
{
|
||||||
|
// Setup
|
||||||
|
const std::string in = "hello";
|
||||||
|
|
||||||
|
// Exercise
|
||||||
|
const std::string out = StringTools::PadRight(in, '0', 5);
|
||||||
|
|
||||||
|
// Verify
|
||||||
|
REQUIRE(out == "hello");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tests that adding padding works
|
||||||
|
TEST_CASE(__FILE__"/Padding", "[Strings][PadRight]")
|
||||||
|
{
|
||||||
|
// Setup
|
||||||
|
const std::string in = "hello";
|
||||||
|
|
||||||
|
// Exercise
|
||||||
|
const std::string out = StringTools::PadRight(in, '0', 7);
|
||||||
|
|
||||||
|
// Verify
|
||||||
|
REQUIRE(out == "hello00");
|
||||||
|
return;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user