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 "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
Program to remove HTML tags from a given String Given a string str that contains some HTML tags, the task is to remove all the tags present in the given string str. Examples: Input: str = "<div><b>Geeks for Geeks</b></div>" Output: Geeks for GeeksInput: str = "<a href="https://www.geeksforgeeks.org/">GFG</a>" O
3 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
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
Print reverse string after removing vowels Given a string s, print reverse of string and remove the characters from the reversed string where there are vowels in the original string. Examples: Input : geeksforgeeksOutput : segrfsegExplanation :Reversed string is skeegrofskeeg, removing characters from indexes 1, 2, 6, 9 & 10 (0 based ind
13 min read