Friday, December 27, 2024
Google search engine
HomeLanguagesProgram to replace a word with asterisks in a sentence

Program to replace a word with asterisks in a sentence

For the given sentence as input, censor a specific word with asterisks ‘ * ‘. 

Example : 

Input : word = “computer” 
text = “Lazyroar is a computer science portal for Lazyroar. People who love computer and computer codes can contribute their valuables/ideas on computer codes/structures on here.” 
Output : Lazyroar is a ******** science portal for Lazyroar. People who love ******** and ******** codes can contribute their valuables/ideas on ******** codes/structures on here.

The idea is to first split given sentence into different words. Then traverse the word list. For every word in the word list, check if it matches with given word. If yes, then replace the word with stars in the list. Finally merge the words of list and print. 

Implementation:

C++




// C++ program to censor a word
// with asterisks in a sentence
#include<bits/stdc++.h>
#include <boost/algorithm/string.hpp>
using namespace std;
 
// Function takes two parameter
string censor(string text,
                    string word)
{
 
    // Break down sentence by ' ' spaces
    // and store each individual word in
    // a different list
    vector<string> word_list;
    boost::split(word_list, text, boost::is_any_of("\\ +"));
 
    // A new string to store the result
    string result = "";
 
    // Creating the censor which is an asterisks
    // "*" text of the length of censor word
    string stars = "";
    for (int i = 0; i < word.size(); i++)
        stars += '*';
 
    // Iterating through our list
    // of extracted words
    int index = 0;
    for (string i : word_list)
    {
         
        if (i.compare(word) == 0)
        {
 
            // changing the censored word to
            // created asterisks censor
            word_list[index] = stars;
        }
        index++;
    }
 
    // join the words
    for (string i : word_list)
    {
        result += i + ' ';
    }
    return result;
}
 
// Driver code
int main()
{
    string extract = "Lazyroar is a computer science "
                    "portal for Lazyroar. I am pursuing my "
                    "major in computer science. ";
    string cen = "computer";
    cout << (censor(extract, cen));
}
 
// This code is contributed by Rajput-Ji


Java




// Java program to censor a word
// with asterisks in a sentence
class GFG
{
 
// Function takes two parameter
static String censor(String text,
                     String word)
{
 
    // Break down sentence by ' ' spaces
    // and store each individual word in
    // a different list
    String[] word_list = text.split("\\s+");
 
    // A new string to store the result
    String result = "";
 
    // Creating the censor which is an asterisks
    // "*" text of the length of censor word
    String stars = "";
    for (int i = 0; i < word.length(); i++)
        stars += '*';
 
    // Iterating through our list
    // of extracted words
    int index = 0;
    for (String i : word_list)
    {
        if (i.compareTo(word) == 0)
 
            // changing the censored word to
            // created asterisks censor
            word_list[index] = stars;
        index++;
    }
 
    // join the words
    for (String i : word_list)
        result += i + ' ';
 
    return result;
}
 
// Driver code
public static void main(String[] args)
{
    String extract = "Lazyroar is a computer science "+
                     "portal for Lazyroar. I am pursuing my " +
                     "major in computer science. ";
    String cen = "computer";
    System.out.println(censor(extract, cen));
}
}
 
// This code is contributed by
// sanjeev2552


Python3




# Python Program to censor a word
# with asterisks in a sentence
 
 
# Function takes two parameter
def censor(text, word):
 
    # Break down sentence by ' ' spaces
    # and store each individual word in
    # a different list
    word_list = text.split()
 
    # A new string to store the result
    result = ''
 
    # Creating the censor which is an asterisks
    # "*" text of the length of censor word
    stars = '*' * len(word)
 
    # count variable to
    # access our word_list
    count = 0
 
    # Iterating through our list
    # of extracted words
    index = 0;
    for i in word_list:
 
        if i == word:
             
            # changing the censored word to
            # created asterisks censor
            word_list[index] = stars
        index += 1
 
    # join the words
    result =' '.join(word_list)
 
    return result
 
# Driver code
if __name__== '__main__':
     
    extract = "Lazyroar is a computer science portal for Lazyroar.\
               I am pursuing my major in computer science. "              
    cen = "computer"   
    print(censor(extract, cen))


C#




// C# program to censor a word
// with asterisks in a sentence
using System;
using System.Collections.Generic;
     
class GFG
{
 
// Function takes two parameter
static String censor(String text,
                     String word)
{
 
    // Break down sentence by ' ' spaces
    // and store each individual word in
    // a different list
    String[] word_list = text.Split(' ');
 
    // A new string to store the result
    String result = "";
 
    // Creating the censor which is an asterisks
    // "*" text of the length of censor word
    String stars = "";
    for (int i = 0; i < word.Length; i++)
        stars += '*';
 
    // Iterating through our list
    // of extracted words
    int index = 0;
    foreach (String i in word_list)
    {
        if (i.CompareTo(word) == 0)
 
            // changing the censored word to
            // created asterisks censor
            word_list[index] = stars;
        index++;
    }
 
    // join the words
    foreach (String i in word_list)
        result += i + " ";
 
    return result;
}
 
// Driver code
public static void Main(String[] args)
{
    String extract = "Lazyroar is a computer science "+
                     "portal for Lazyroar. I am pursuing my " +
                     "major in computer science. ";
    String cen = "computer";
    Console.WriteLine(censor(extract, cen));
}
}
 
// This code is contributed by PrinciRaj1992


Javascript




<script>
 
      // JavaScript program to censor a word
      // with asterisks in a sentence
       
      // Function takes two parameter
      function censor(text, word) {
        // Break down sentence by ' ' spaces
        // and store each individual word in
        // a different list
        var word_list = text.split(" ");
 
        // A new string to store the result
        var result = "";
 
        // Creating the censor which is an asterisks
        // "*" text of the length of censor word
        var stars = "";
        for (var i = 0; i < word.length; i++) stars += "*";
 
        // Iterating through our list
        // of extracted words
        var index = 0;
        for (const i of word_list) {
          if (i === word)
            // changing the censored word to
            // created asterisks censor
            word_list[index] = stars;
          index++;
        }
 
        // join the words
        for (const i of word_list) {
          result += i + " ";
        }
 
        return result;
      }
 
      // Driver code
      var extract =
        "Lazyroar is a computer science " +
        "portal for Lazyroar. I am pursuing my " +
        "major in computer science. ";
         
      var cen = "computer";
      document.write(censor(extract, cen) + "<br>");
       
</script>


PHP




<?php
// PHP Program to censor a word
// with asterisks in a sentence
 
// Function takes two parameter
function censor($text, $word)
{
 
    // Break down sentence by ' ' spaces
    // and store each individual word in
    // a different list
    $word_list = explode(" ", $text);
 
    // A new string to store the result
    $result = '';
 
    // Creating the censor which is an
    // asterisks "*" text of the length
    // of censor word
    $stars = "";
    for($i = 0; $i < strlen($word); $i++)
    $stars .= "*";
 
    // count variable to access
    // our word_list
    $count = 0;
 
    // Iterating through our list of
    // extracted words
    $index = 0;
    for($i = 0; $i < sizeof($word_list); $i++)
    {
        if($word_list[$i] == $word)
             
            // changing the censored word to
            // created asterisks censor
            $word_list[$index] = $stars;
        $index += 1;
    }
     
    // join the words
    return implode(' ', $word_list);
}
 
// Driver code
$extract = "Lazyroar is a computer science ".
           "portal for Lazyroar.\nI am pursuing my ".
                    "major in computer science. ";        
$cen = "computer";
echo censor($extract, $cen);
 
// This code is contributed
// by Aman ojha
?>


Output

Lazyroar is a ******** science portal for Lazyroar. I am pursuing my major in ******** science.  

Complexity Analysis:

  • Time complexity: O(length(word)+M), where M is the number of words in text
  • Auxiliary Space: O(1)

Approach : Using replace() in python3.
Replace() method searches for the string passed as the first argument in the given string and then replaces that with the second argument.

Implementation:

Python3




# Python Program to censor a word
# with asterisks in a sentence
 
extract = "Lazyroar is a computer science portal for Lazyroar.I am pursuing my major in computer science. "           
cen = "computer"
extract=extract.replace(cen,'*'*len(cen))
print(extract)


Javascript




// JavaScript Program to censor a word
// with asterisks in a sentence
 
let extract = "Lazyroar is a computer science portal for Lazyroar.I am pursuing my major in computer science.";
let cen = "computer";
extract = extract.replace(new RegExp(cen, 'gi'), '*'.repeat(cen.length));
console.log(extract);
 
// This code is contributed by codebraxnzt


Output

Lazyroar is a ******** science portal for Lazyroar.\I am pursuing my major in ******** science. 

Using re module:

You can use the re module in Python to search for the specific word in the sentence and replace it with the asterisks.

Using 

The censor function takes two parameters, text and word. 

It searches for all occurrences of word in text using a regular expression with the global g flag, and replaces each occurrence with asterisks of the same length using the replace function.

Java




import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Main {
    public static String censor(String text, String word)
    {
        // Use the replaceAll function in the Matcher class
        // to search for the word in the text and replace it
        // with the asterisks of the same length
        Pattern pattern = Pattern.compile(word);
        Matcher matcher = pattern.matcher(text);
        String result
            = matcher.replaceAll("*".repeat(word.length()));
        return result;
    }
 
    // Test the function
    public static void main(String[] args)
    {
        String text
            = "Lazyroar is a computer science portal for Lazyroar. I am pursuing my major in computer science.";
        String word = "computer";
        System.out.println(censor(text, word));
    }
}
// This code is contributed by Prajwal Kandekar


Python3




import re
 
def censor(text, word):
    # Use the sub function in the re module to search for the word in the text
    # and replace it with the asterisks of the same length
    result = re.sub(word, '*' * len(word), text)
    return result
 
# Test the function
text = "Lazyroar is a computer science portal for Lazyroar. I am pursuing my major in computer science."
word = "computer"
print(censor(text, word))


C#




using System;
using System.Text.RegularExpressions;
 
class MainClass {
    public static string Censor(string text, string word) {
        // Use the Replace method in the Regex class
        // to search for the word in the text and replace it
        // with the asterisks of the same length
        Regex regex = new Regex(Regex.Escape(word));
        string result = regex.Replace(text, new string('*', word.Length));
        return result;
    }
 
    // Test the function
    public static void Main (string[] args) {
        string text = "Lazyroar is a computer science portal for Lazyroar. I am pursuing my major in computer science.";
        string word = "computer";
        Console.WriteLine(Censor(text, word));
    }
}


Javascript




// JavaScript Program for the above approach
 
function censor(text, word) {
  // Use the replace method with a regular expression to search for the word in the text
  // and replace it with the asterisks of the same length
  const regex = new RegExp(word, 'gi');
  const result = text.replace(regex, '*'.repeat(word.length));
  return result;
}
 
// Test the function
const text = "Lazyroar is a computer science portal for Lazyroar. I am pursuing my major in computer science.";
const word = "computer";
console.log(censor(text, word));
 
// This code is contributed by princekumaras


Output

Lazyroar is a ******** science portal for Lazyroar. I am pursuing my major in ******** science.

This approach has a time complexity of O(N), where N is the length of the text. The auxiliary space required is O(1).

Using regular expression

In the regular expression, we pass the word variable as the pattern to search for. The g flag means that it will find all occurrences of the pattern, not just the first one.

In the replace function, we pass a callback function that returns an asterisk (*) repeated for the length of the matched string. 

This ensures that the asterisks have the same length as the word that was replaced.

C++




#include <bits/stdc++.h>
using namespace std;
 
// C++ program to censor words in text
string censor(string text, string word)
{
   
    // Use the regex_replace function in
  /// the regex library to search for the word in the text
    // and replace it with the asterisks of the same length
    regex r(word);
    string result = regex_replace(text, r, string(word.length(), '*'));
    return result;
}
 
// Test the function
int main() {
    string text = "Lazyroar is a computer science portal for Lazyroar. I am pursuing my major in computer science.";
    string word = "computer";
    cout << censor(text, word) <<endl;
    return 0;
}


Python3




# Python program to censor words in text
def censor(text, word):
    # Use the replace function in the String object to search for the word in the text
    # and replace it with the asterisks of the same length
    result = text.replace(word, "*"*len(word))
    return result
 
# Test the function
text = "Lazyroar is a computer science portal for Lazyroar. I am pursuing my major in computer science."
word = "computer"
print(censor(text, word))


Javascript




// JavaScript program to censor words in text
function censor(text, word) {
    // Use the replace function in the String object to search for the word in the text
    // and replace it with the asterisks of the same length
    const regex = new RegExp(word, "g");
    const result = text.replace(regex, "*".repeat(word.length));
    return result;
}
 
// Test the function
const text = "Lazyroar is a computer science portal for Lazyroar. I am pursuing my major in computer science.";
const word = "computer";
console.log(censor(text, word));
 
// Contributed by adityasharmadev01


Output

Lazyroar is a ******** science portal for Lazyroar. I am pursuing my major in ******** science.

Time complexity: O(n), where n is the length of the input text string. 

Space complexity: O(1).

RELATED ARTICLES

Most Popular

Recent Comments