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