Raymii.org
Quis custodiet ipsos custodes?Home | About | All pages | Cluster Status | RSS Feed
C++ Remove leading or trailing characters from std::string
Published: 18-07-2020 | Author: Remy van Elst | Text only version of this article
❗ This post is over four years old. It may no longer be up to date. Opinions may have changed.
Table of Contents
Here's a small snippet to remove leading or trailing characters from a std::string in C++. I use it to strip leading and trailing zeroes in a game score display function.
Recently I removed all Google Ads from this site due to their invasive tracking, as well as Google Analytics. Please, if you found this content useful, consider a small donation using any of the options below. It means the world to me if you show your appreciation and you'll help pay the server costs:
GitHub Sponsorship
PCBWay referral link (You get $5, I get $20 after you've placed an order)
Digital Ocea referral link ($200 credit for 60 days. Spend $25 after your credit expires and I'll get $25!)
Code
These are the two functions, one to remove leading zeroes and one to remove trailing zeroes:
static void removeTrailingCharacters(std::string &str, const char charToRemove) {
str.erase (str.find_last_not_of(charToRemove) + 1, std::string::npos );
}
static void removeLeadingCharacters(std::string &str, const char charToRemove) {
str.erase(0, std::min(str.find_first_not_of(charToRemove), str.size() - 1));
}
Usage example
Example program and output:
#include <iostream>
#include <string>
static void removeTrailingCharacters(std::string &str, const char charToRemove) {
str.erase (str.find_last_not_of(charToRemove) + 1, std::string::npos );
}
static void removeLeadingCharacters(std::string &str, const char charToRemove) {
str.erase(0, std::min(str.find_first_not_of(charToRemove), str.size() - 1));
}
int main() {
std::string example1 = "0000abc000";
std::cout << "before trailing removal: " << example1 << std::endl;
removeTrailingCharacters(example1, '0');
std::cout << "after trailing removal: " << example1 << std::endl;
std::cout << std::endl;
std::cout << "before leading removal: " << example1 << std::endl;
removeLeadingCharacters(example1, '0');
std::cout << "after leading removal: " << example1 << std::endl;
return 0;
}
Output:
before trailing removal: 0000abc000
after trailing removal: 0000abc
before leading removal: 0000abc
after leading removal: abc
Tags: c++
, cpp
, development
, snippets
, string