Convert String to lowercase
#include <algorithm>
#include <string>
string data = "Abc";
std::transform(data.begin(), data.end(), data.begin(), ::tolower);
Be aware that ::tolower() can only do a per-single-byte-character substitution, which is ill-fitting for many scripts, especially if using a multi-byte-encoding like UTF-8.
Replace Character In A String
Note this only works for characters, there is no simple function to replace sections of a string :-(
#include <algorithm>
#include <string>
std::string string1 = "Mx string";
std::replace(string1.begin(), string1.end(), 'x', 'y'); // replace all 'x' with 'y' (needs the <algorithm> library)
//#include <algorithm>
//#include <string>
//***************************************************************************************
//***************************************************************************************
//********** REPLACE AN OCCURANCE OF A STRING WITHIN A STRING CASE INSENSITIVE **********
//***************************************************************************************
//***************************************************************************************
//ReplaceFrom will be compared without case sensitivity to ConvertString
string ReplaceAllCaseInsensitive(string ConvertString, const string ReplaceFrom, const string ReplaceTo)
{
if (ReplaceFrom.length() <= 0) //Protect against endless loop
return(ConvertString);
//Get lowercase versions of string to be converted to use for compare, and ensure the ReplaceFrom string is also lowercase
string ConvertStringLowercase = ConvertString;
std::transform(ConvertStringLowercase.begin(), ConvertStringLowercase.end(), ConvertStringLowercase.begin(), ::tolower);
string ReplaceFromLowercase = ReplaceFrom;
std::transform(ReplaceFromLowercase.begin(), ReplaceFromLowercase.end(), ReplaceFromLowercase.begin(), ::tolower);
//Do the replace
size_t StartPos = 0;
if ((StartPos = ConvertStringLowercase.find(ReplaceFromLowercase, StartPos)) != std::string::npos)
{
ConvertString.replace(StartPos, ReplaceFrom.length(), ReplaceTo);
//StartPos += ReplaceTo.length(); // Handles case where 'ReplaceTo' is a substring of 'ReplaceFrom'
}
return(ConvertString);
}
Replace String In A String
//#include <algorithm>
//#include <string>
//************************************************************************
//************************************************************************
//********** REPLACE ALL OCCURANCES OF A STRING WITHIN A STRING **********
//************************************************************************
//************************************************************************
string ReplaceAll(string ConvertString, const string ReplaceFrom, const string ReplaceTo)
{
if (ReplaceFrom.length() <= 0) //Protect against endless loop
return(ConvertString);
//Do the replace
size_t StartPos = 0;
while((StartPos = ConvertString.find(ReplaceFrom, StartPos)) != std::string::npos)
{
ConvertString.replace(StartPos, ReplaceFrom.length(), ReplaceTo);
StartPos += ReplaceTo.length(); // Handles case where 'ReplaceTo' is a substring of 'ReplaceFrom'
}
return(ConvertString);
}
Remove Character In A String
#include <algorithm>
#include <string>
std::string string1 = "Mx string";
string1.erase(std::remove(string1.begin(), string1.end(), 'x'), string1.end()); // remove all 'x' characters (needs the <algorithm> library)
Replace the first and last occurances of characters in a string
string my_string = "{abc}";
size_t found_character;
//Remove the first and last braces (will be added by json handler later)
found_character = my_string.find_first_of("{");
if (found_character != string::npos)
my_string[found_character]=' ';
found_character = my_string.find_last_of("}");
if (found_character != string::npos)
my_string[found_character]=' ';
Insert String Into String
my_string.insert(start_pos, some_other_string);
