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.
Similar Reads
Remove extra spaces from a string
Given a string containing many consecutive spaces, trim all spaces so that all words should contain only a single space between them. The conversion should be done in-place and solution should handle trailing and leading spaces and also remove preceding spaces before common punctuation like full sto
14 min read
C++ Program to remove spaces from a string
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
2 min read
Remove "b" and "ac" from a given string
Given a string, eliminate all "b" and "ac" in the string, you have to replace them in-place, and you are only allowed to iterate over the string once. (Source Google Interview Question) Examples: acbac ==> "" aaac ==> aa ababac ==> aa bbbbd ==> dWe strongly recommend that you click here
12 min read
Removing punctuations from a given string
Given a string, remove the punctuation from the string if the given character is a punctuation character, as classified by the current C locale. The default C locale classifies these characters as punctuation: ! " # $ % & ' ( ) * + , - . / : ; ? @ [ \ ] ^ _ ` { | } ~ Examples: Input : %welcome'
5 min read
Remove last occurrence of a word from a given sentence string
Given two strings S and W of sizes N and M respectively, the task is to remove the last occurrence of W from S. If there is no occurrence of W in S, print S as it is. Examples: Input: S = âThis is GeeksForGeeksâ, W="Geeks"Output: This is GeeksForExplanation:The last occurrence of âGeeksâ in the stri
11 min read
Removing spaces from a string using Stringstream
Solution to removing spaces from a string is already posted here. In this article another solution using stringstream is discussed. Algorithm: 1. Enter the whole string into stringstream. 2. Empty the string. 3. Extract word by word and concatenate to the string. Program 1: Using EOF. C/C++ Code //
2 min read
Remove odd indexed characters from a given string
Given string str of size N, the task is to remove the characters present at odd indices (0-based indexing) of a given string. Examples : Input: str = âabcdefâOutput: aceExplanation:The characters 'b', 'd' and 'f' are present at odd indices, i.e. 1, 3 and 5 respectively. Therefore, they are removed f
4 min read
Remove Duplicate/Repeated words from String
Given a string S, the task is to remove all duplicate/repeated words from the given string. Examples: Input: S = "Geeks for Geeks A Computer Science portal for Geeks" Output: Geeks for A Computer Science portal Explanation: here 'Geeks' and 'for' are duplicate so these words are removed from the str
4 min read
Remove the forbidden strings
Given a string W, change the string in such a way that it does not contain any of the "forbidden" strings S1 to Sn as one of its substrings. The rules that govern this change are as follows: Case of the characters does not matter i.e "XyZ" is the same as "xYZ". Change all the characters that are cov
15+ min read
Program to remove vowels from a String
Given a string, remove the vowels from the string and print the string without vowels. Examples: Input : welcome to geeksforgeeks Output : wlcm t gksfrgks Input : what is your name ? Output : wht s yr nm ?Recommended PracticeRemove vowels from stringTry It! A loop is designed that goes through a lis
4 min read