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' to @neveropenforgeek<s Output : welcome to neveropen Input : Hello!!!, he said ---and went. Output : Hello he said and went
Approach: First check the input string if it consists of punctuations then we have to make it punctuation free. In order to do this, we will traverse over the string, and if punctuations are found we will remove them. Let’s say the input string is ‘$Student@‘ then we have to remove $ and @, furthermore we have to print the plain string ‘Student‘ which is free from any punctuations.
Algorithm:
- Initialize the input string
- Check if the character present in the string is punctuation or not.
- If a character is a punctuation, then erase that character and decrement the index.
- Print the output string, which will be free of any punctuation.
Below is the implementation of the above approach:
C++
// CPP program to remove punctuation from a given string #include <iostream> using namespace std; int main() { // input string std::string str = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" ; for ( int i = 0, len = str.size(); i < len; i++) { // check whether parsing character is punctuation or not if (ispunct(str[i])) { str.erase(i--, 1); len = str.size(); } } // print string without punctuation std::cout << str; return 0; } |
Java
// Java program to remove punctuation from a given string public class Test { public static void main(String[] args) { // input string String str = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" ; // similar to Matcher.replaceAll str = str.replaceAll( "\\p{Punct}" , "" ); System.out.println(str); } } // This code is contributed by Gaurav Miglani |
Python3
# Python program to remove punctuation from a given string # Function to remove punctuation def Punctuation(string): # punctuation marks punctuations = '''!()-[]{};:'"\,<>./?@#$%^&*_~''' # traverse the given string and if any punctuation # marks occur replace it with null for x in string.lower(): if x in punctuations: string = string.replace(x, "") # Print string without punctuation print (string) # Driver program string = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" Punctuation(string) |
C#
// C# program to remove punctuation // from a given string using System; using System.Text.RegularExpressions; class GFG { public static void Main() { // input string String str = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" ; // similar to Matcher.replaceAll str = Regex.Replace(str, @"[^\w\d\s]" , "" ); Console.Write(str); } } // This code is contributed // by 29AjayKumar |
Javascript
<script> // JavaScript program to remove punctuation from a given string { // input string var str = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" ; // similar to Matcher.replaceAll str = str.replace(/[^a-zA-Z ]/g, "" ); document.write(str); } // This code is contributed by shivanisingh </script> |
Welcome to neveropen
Time Complexity: O(n2)
Auxiliary Space: O(1)
Approach 2 : – Using a loop to iterate over the string and remove punctuations
Initialize an empty string called result.
Iterate over the characters in the given string using a loop.
For each character, check if it is a punctuation character using the ispunct function.
If the character is not a punctuation character, add it to the result string.
Repeat steps 3-4 for all characters in the string.
Replace the original string with the result string, effectively removing all punctuation characters from the original string.
This approach may be useful in cases where you need to perform additional operations on each character in the string before removing punctuations, or if you need to process the string character-by-character rather than using a built-in algorithm.
C++
// CPP program to remove punctuation from a given string #include <iostream> using namespace std; string removePunctuations(std::string& s) { std::string result = "" ; for ( char c : s) { if (!ispunct(c)) { // If c is not a punctuation character result += c; } } s = result; return s; } int main() { // input string std::string str = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" ; // print string without punctuation std::cout << removePunctuations(str); return 0; } |
Java
//GFG //Java Code for the given approach import java.util.*; public class RemovePunctuations { public static String removePunctuations(String s) { StringBuilder result = new StringBuilder(); for ( char c : s.toCharArray()) { if (Character.isLetterOrDigit(c) || Character.isWhitespace(c)) { // If c is a letter, digit, or whitespace result.append(c); } } return result.toString(); } public static void main(String[] args) { // input string String str = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" ; // print string without punctuation System.out.println(removePunctuations(str)); } } // This code is written by Sundaram |
Python3
import re # Function to remove punctuation from a given string def removePunctuations(s): result = "" for c in s: if not re.match(r "[.,\/#!$%\^&\*;:{}=\-_`~()@?]" , c): # If c is not a punctuation character result + = c s = result return s # Main function # Input string str = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" # Print string without punctuation print (removePunctuations( str )) |
C#
using System; using System.Text.RegularExpressions; class Program { static void Main( string [] args) { // Input string string str = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" ; // Print string without punctuation Console.WriteLine(RemovePunctuations(str)); } // Function to remove punctuation from a given string static string RemovePunctuations( string s) { string result = "" ; foreach ( char c in s) { if (!Regex.IsMatch( c.ToString(), @"[.,\/#!$%\^&\*;:{}=\-_`~()@?]" )) // If // c // is // not // a // punctuation // character { result += c; } } s = result; return s; } } |
Javascript
// Function to remove punctuation from a given string function removePunctuations(s) { let result = "" ; for (let c of s) { if (!c.match(/[.,\/ #!$%\^&\*;:{}=\-_`~()@?]/g)) { // If c is not a punctuation character result += c; } } s = result; return s; } // Main function // Input string let str = "Welcome???@@##$ to#$% Geeks%$^for$%^&Geeks" ; // Print string without punctuation console.log(removePunctuations(str)); |
Welcome to neveropen
Time Complexity: O(n), where n is the size of the string
Auxiliary Space: O(1)
This article is contributed by Aarti_Rathi and Pramod Kumar. If you like neveropen and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the neveropen main page and help other Geeks.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!