Open In App

Remove spaces from a given string

Last Updated : 06 Dec, 2024
Summarize
Comments
Improve
Suggest changes
Like Article
Like
Save
Share
Report
News Follow

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>

Output
geeksforgeeeks

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>

Output
geeksforgeeeks

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);

Output
string 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.



Similar Reads

Article Tags :
Practice Tags :
three90RightbarBannerImg
  翻译: