Remove spaces from a string in C++
Understanding String Manipulation
Removing spaces from a string means eliminating all whitespace characters.
We will explore three different methods to achieve this in C++.
Method 1: Using a Loop
This method iterates through the string and copies only non-space characters.
#include <iostream> using namespace std; void removeSpaces(string &str) { int count = 0; for (int i = 0; i < str.length(); i++) if (str[i] != ' ') str[count++] = str[i]; str.resize(count); } int main() { string str = "Hello World!"; removeSpaces(str); cout << "Filtered String: " << str; return 0; }
Output: HelloWorld!
Method 2: Using Recursion
This method removes spaces recursively.
#include <iostream> using namespace std; void removeSpacesRecursive(string &str, int index, int count) { if (index == str.length()) { str.resize(count); return; } if (str[index] != ' ') str[count++] = str[index]; removeSpacesRecursive(str, index + 1, count); } int main() { string str = "C++ programming"; removeSpacesRecursive(str, 0, 0); cout << "Filtered String: " << str; return 0; }
Output: C++programming
Method 3: Using Pointers
This method uses pointers to remove spaces efficiently.
#include <iostream> using namespace std; void removeSpacesPointer(string &str) { char *i = &str[0], *j = &str[0]; while (*i) { if (*i != ' ') *j++ = *i; i++; } str.resize(j - &str[0]); } int main() { string str = "Remove spaces"; removeSpacesPointer(str); cout << "Filtered String: " << str; return 0; }
Output: Removespaces