C++ Program to remove spaces from a string
Last Updated :
03 Jan, 2023
Given a string, remove all spaces from it. For example “g e e k” should be converted to “geek” and ” g e ” should be converted to “ge”. The idea is to traverse the string from left to right and ignore spaces while traversing. We need to keep track of two indexes, one for the current character being red and the other for the current index in the output.
Implementation:
C++
#include <iostream>
using namespace std;
char *removeSpaces( char *str)
{
int i = 0, j = 0;
while (str[i])
{
if (str[i] != ' ' )
str[j++] = str[i];
i++;
}
str[j] = '\0' ;
return str;
}
int main()
{
char str1[] = "gee k " ;
cout << removeSpaces(str1) << endl;
char str2[] = " g e e k " ;
cout << removeSpaces(str2);
return 0;
}
|
Time complexity: O(n) where n is the number of characters in the input string.
Auxiliary Space: O(1)
Approach 2: using in-built function
The main idea in this approach is we will traverse the whole string and will delete the space by using the in-built erase function from C++ STL.
Time complexity will be O(N) where N is the length of the string and the solution will also be the in-place solution.
C++
#include <bits/stdc++.h>
using namespace std;
void removespace(string s)
{
for ( int i = 0; i < s.length(); i++)
{
if (s[i] == ' ' )
{
s.erase(s.begin() + i);
i--;
}
}
cout << s;
}
int main()
{
string s = "Gee k " ;
cout << "original string is: " <<s<<endl;
cout << "final updated string: " ;
removespace(s);
cout<<endl;
string s1= "G e e k" ;
cout << "original string is: " <<s1<<endl;
cout << "final updated string: " ;
removespace(s1);
return 0;
}
|
Output
original string is: Gee k
final updated string: Geek
original string is: G e e k
final updated string: Geek
Auxiliary Space: O(1), for erasing the character in the string it takes constant time.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...