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> toRet;
|
||||
|
||||
// Quick-accept: str length is 0
|
||||
if (str.length() == 0)
|
||||
toRet.push_back("");
|
||||
@ -132,3 +131,25 @@ std::vector<std::string> StringTools::Split(const std::string& str, const std::s
|
||||
|
||||
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
|
||||
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:
|
||||
// No instanciation! >:(
|
||||
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_String.cpp
|
||||
String__Split.cpp
|
||||
String__PadLeft.cpp
|
||||
|
||||
# CharTools-Tests
|
||||
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