Remove spaces from a given string
Last Updated :
06 Dec, 2024
Given a string, remove all spaces from the string and return it.
Input: “g eeks for ge eeks “
Output: “geeksforgeeks”
Input: “abc d “
Output: “abcd”
Expected time complexity is O(n) and only one traversal of string.
Below is a Simple Solution
1) Iterate through all characters of given string, do following
a) If current character is a space, then move all subsequent
characters one position back and decrease length of the
result string.
Time complexity of above solution is O(n2).
A Better Solution can solve it in O(n) time. The idea is to keep track of count of non-space character seen so far.
1) Initialize 'count' = 0 (Count of non-space character seen so far)
2) Iterate through all characters of given string, do following
a) If current character is non-space, then put this character
at index 'count' and increment 'count'
3) Finally, put '\0' at index 'count'
Below is the implementation of above algorithm.
C++
// An efficient C++ program to remove all spaces
// from a string
#include <iostream>
using namespace std;
// Function to remove all spaces from a given string
void removeSpaces(char *str)
{
// To keep track of non-space character count
int count = 0;
// Traverse the given string. If current character
// is not space, then place it at index 'count++'
for (int i = 0; str[i]; i++)
if (str[i] != ' ')
str[count++] = str[i]; // here count is
// incremented
str[count] = '\0';
}
// Driver program to test above function
int main()
{
char str[] = "g eeks for ge eeks ";
removeSpaces(str);
cout << str;
return 0;
}
Java
// An efficient Java program to remove all spaces
// from a string
class GFG
{
// Function to remove all spaces
// from a given string
static int removeSpaces(char []str)
{
// To keep track of non-space character count
int count = 0;
// Traverse the given string.
// If current character
// is not space, then place
// it at index 'count++'
for (int i = 0; i<str.length; i++)
if (str[i] != ' ')
str[count++] = str[i]; // here count is
// incremented
return count;
}
// Driver code
public static void main(String[] args)
{
char str[] = "g eeks for ge eeks ".toCharArray();
int i = removeSpaces(str);
System.out.println(String.valueOf(str).subSequence(0, i));
}
}
// This code is contributed by Rajput-Ji
Python
# Python program to Remove spaces from a given string
# Function to remove all spaces from a given string
def removeSpaces(string):
# To keep track of non-space character count
count = 0
list = []
# Traverse the given string. If current character
# is not space, then place it at index 'count++'
for i in xrange(len(string)):
if string[i] != ' ':
list.append(string[i])
return toString(list)
# Utility Function
def toString(List):
return ''.join(List)
# Driver program
string = "g eeks for ge eeks "
print removeSpaces(string)
# This code is contributed by Bhavya Jain
C#
// An efficient C# program to remove all
// spaces from a string
using System;
class GFG
{
// Function to remove all spaces
// from a given string
static int removeSpaces(char []str)
{
// To keep track of non-space
// character count
int count = 0;
// Traverse the given string. If current
// character is not space, then place
// it at index 'count++'
for (int i = 0; i < str.Length; i++)
if (str[i] != ' ')
str[count++] = str[i]; // here count is
// incremented
return count;
}
// Driver code
public static void Main(String[] args)
{
char []str = "g eeks for ge eeks ".ToCharArray();
int i = removeSpaces(str);
Console.WriteLine(String.Join("", str).Substring(0, i));
}
}
// This code is contributed by 29AjayKumar
JavaScript
<script>
// An efficient JavaScript program to remove all
// spaces from a string
// Function to remove all spaces
// from a given string
function removeSpaces(str) {
// To keep track of non-space
// character count
var count = 0;
// Traverse the given string. If current
// character is not space, then place
// it at index 'count++'
for (var i = 0; i < str.length; i++)
if (str[i] !== " ") str[count++] = str[i];
// here count is
// incremented
return count;
}
// Driver code
var str = "g eeks for ge eeks ".split("");
var i = removeSpaces(str);
document.write(str.join("").substring(0, i));
</script>
Time complexity of above solution is O(n) and it does only one traversal of string.
Auxiliary Space: O(1)
Another solution suggested by Divyam Madaan is to use predefined functions. Here is the implementation:
C++
// CPP program to Remove spaces
// from a given string
#include <iostream>
#include <algorithm>
using namespace std;
// Function to remove all spaces from a given string
string removeSpaces(string str)
{
str.erase(remove(str.begin(), str.end(), ' '), str.end());
return str;
}
// Driver program to test above function
int main()
{
string str = "g eeks for ge eeks ";
str = removeSpaces(str);
cout << str;
return 0;
}
// This code is contributed by Divyam Madaan
Java
// Java program to remove
// all spaces from a string
class GFG {
// Function to remove all
// spaces from a given string
static String removeSpace(String str)
{
str = str.replaceAll("\\s","");
return str;
}
// Driver Code
public static void main(String args[])
{
String str = "g eeks for ge eeks ";
System.out.println(removeSpace(str));
}
}
// This code is contributed by Kanhaiya.
Python
# Python program to Remove spaces from a given string
# Function to remove all spaces from a given string
def removeSpaces(string):
string = string.replace(' ','')
return string
# Driver program
string = "g eeks for ge eeks "
print(removeSpaces(string))
# This code is contributed by Divyam Madaan
C#
// C# program to remove
// all spaces from a string
using System;
class GFG
{
// Function to remove all
// spaces from a given string
static String removeSpace(String str)
{
str = str.Replace(" ","");
return str;
}
// Driver Code
public static void Main()
{
String str = "g eeks for ge eeks ";
Console.WriteLine(removeSpace(str));
}
}
// This code is contributed by
// PrinciRaj1992
JavaScript
<script>
// javascript program to remove
// all spaces from a string
// Function to remove all
// spaces from a given string
function removeSpace( str)
{
str = str.replace(/\s/g,'')
return str;
}
// Driver Code
var str = "g eeks for ge eeks ";
document.write(removeSpace(str));
// This code contributed by aashish1995
</script>
Another method to solve this problem using predefined STL functions like count() ,remove() ,getline() and resize() is also present. Here is the implementation for the same :
C++
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s = "g e e k s f o r g e e k s";
cout << "string with spaces is " << s << endl;
int l = s.length(); // storing the length of the string
int c
= count(s.begin(), s.end(),
' '); // counting the number of whitespaces
remove(s.begin(), s.end(),
' '); // removing all the whitespaces
s.resize(l - c); // resizing the string to l-c
cout << "string without spaces is " << s << endl;
return 0;
}
Java
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) {
String s = "g e e k s f o r g e e k s";
System.out.println("string with spaces is " + s);
int l = s.length(); // storing the length of the string
int c = (int) s.chars().filter(ch -> ch == ' ').count(); // counting the number of whitespaces
s = s.replace(" ", ""); // removing all the whitespaces
s = s.substring(0, l - c); // resizing the string to l-c
System.out.println("string without spaces is " + s);
}
}
Python
s = "g e e k s f o r g e e k s"
print("string with spaces is", s)
l = len(s) # storing the length of the string
c = s.count(' ') # counting the number of whitespaces
s = s.replace(' ', '') # removing all the whitespaces
s = s[:l - c] # resizing the string to l-c
print("string without spaces is", s)
C#
// C# program for the above approach
using System;
public class GFG {
public static void Main(string[] args) {
string s = "g e e k s f o r g e e k s";
Console.WriteLine("string with spaces is " + s);
int l = s.Length; // storing the length of the string
int c = s.Split(' ').Length - 1; // counting the number of whitespaces
s = s.Replace(" ", ""); // removing all the whitespaces
s = s.Substring(0, l - c); // resizing the string to l-c
Console.WriteLine("string without spaces is " + s);
}
}
// This code is contributed by princekumaras
JavaScript
// JavaScript program for the above approach
let s = "g e e k s f o r g e e k s";
console.log("string with spaces is " + s);
let l = s.length; // storing the length of the string
let c = s.split(' ').length - 1; // counting the number of whitespaces
s = s.replace(/\s/g, ""); // removing all the whitespaces
s = s.substring(0, l - c); // resizing the string to l-c
console.log("string without spaces is " + s);
Outputstring with spaces is g e e k s f o r g e e k s
string without spaces is geeksforgeeks
Time Complexity : O(N), N is length of given string.
Auxiliary Space : O(1), since no extra space is used.