Skip to content
Related Articles

Related Articles

Replace every character of a string by a different character

View Discussion
Improve Article
Save Article
Like Article
  • Difficulty Level : Medium
  • Last Updated : 27 May, 2022

Given a string str of lowercase alphabets only. The task is to replace every character by some new character. The new character belongs to $a-z$     (small case only) Replacement of str[i] is determined by:
 

str[i] = Character obtained after traversing ascii(str[i]) no. of characters in ‘a-z’ repeatedly after str[i].

Examples: 
 

Input: str = “geeksforgeeks” 
Output: fbbnddvbfbbnd
In the above case str = “geeksforgeeks”, 
the ASCII value of ‘g’ is 103 therefore ‘g’ has been replaced by moving 103 times from ‘g’ in the desired range i.e., a-z. 
Hence, character ‘g’ is replaced by ‘f’. 
Similarly, the complete string “geeksforgeeks” becomes “fbbnddvbfbbnd”.
Input: str = “science” 
Output: dxjbtxb

 

Approach: 
 

  1. Traverse the string.
  2. For every i, find the character that needs to be replaced with str[i].
  3. Replace str[i] with that character.

Below is the implementation of above approach: 
 

C++




// C++ program for Replace every character of a
// string by a different character
#include <bits/stdc++.h>
using namespace std;
 
// Function to manipulate the string
void manipulateString(string &str)
{
 
    // looping through each character of string
    for (int i = 0; i < str.length(); i++) {
 
        // storing integer ASCII value of
        // the character in 'asc'
        int asc = str[i];
 
        // 'rem' contains coded value which
        // needs to be rounded to 26
        int rem = asc - (26 - (str[i] - 'a'));
 
        // converting 'rem' character in range
        // 0-25 and storing in 'm'
        int m = rem % 26;
 
        // printing character by adding ascii value of 'a'
        // so that it becomes in the desired range i.e. a-z
        str[i] = (char)(m + 'a');
    }
}
 
// Driver code
int main()
{
 
    // Declaring str as 'geeksforgeeks'
    string str = "geeksforgeeks";
 
    manipulateString(str);
 
    cout << str;
 
    return 0;
}

Java




// Java program for Replace every character of a
// string by a different character
public class GFG {
 
    //Function to manipulate the string
    static void manipulateString(String str)
    {
 
        char[] str1 = str.toCharArray();
         
     // looping through each character of string
     for (int i = 0; i < str.length(); i++) {
 
         // storing integer ASCII value of
         // the character in 'asc'
          
         int asc = str1[i];
        
         // 'rem' contains coded value which
         // needs to be rounded to 26
         int rem = asc - (26 - (str1[i] - 97));
 
         // converting 'rem' character in range
         // 0-25 and storing in 'm'
         int m = rem % 26;
         
         // printing character by adding ascii value of 'a'
         // so that it becomes in the desired range i.e. a-z
         str1[i] = (char)(m + 'a');
             
     }
     
     String str2 = String.valueOf(str1);
     System.out.println(str2);
      
    }
 
    //Driver code
    public static void main(String[] args) {
         
        // Declaring str as 'geeksforgeeks'
         String str = "geeksforgeeks";
 
         manipulateString(str);
          
         
    }
}

Python 3




# Python 3 program for Replace every character of a
# string by a different character
 
# Function to manipulate the string
def manipulateString(str) :
 
    # looping through each character of string
    for i in range(len(str)) :
         
        # storing integer ASCII value of
        # the character in 'asc'
        asc = ord(str[i])
 
        # 'rem' contains coded value which
        # needs to be rounded to 26
        rem = asc - (26 - (ord(str[i]) - ord('a')))
 
        # converting 'rem' character in range
        # 0-25 and storing in 'm'
        = rem % 26
 
        #printing character by adding ascii value of 'a'
        # so that it becomes in the desired range i
        str[i] = chr(m + ord('a'))
 
    # join method join all individual
    # characters to form a string
    print(''.join(str))
 
# Driver code    
if __name__ == "__main__" :
 
    str = "geeksforgeeks"
 
    # convert string into list of characters
    str = list(str)
 
    # Function calling
    manipulateString(str)
 
  
# This code is contributed by ANKITRAI1

C#




     
// C# program for Replace every character of a
// string by a different character
using System;
public class GFG {
  
    //Function to manipulate the string
    static void manipulateString(String str)
    {
  
        char[] str1 = str.ToCharArray();
          
     // looping through each character of string
     for (int i = 0; i < str.Length; i++) {
  
         // storing integer ASCII value of
         // the character in 'asc'
           
         int asc = str1[i];
         
         // 'rem' contains coded value which
         // needs to be rounded to 26
         int rem = asc - (26 - (str1[i] - 97));
  
         // converting 'rem' character in range
         // 0-25 and storing in 'm'
         int m = rem % 26;
          
         // printing character by adding ascii value of 'a'
         // so that it becomes in the desired range i.e. a-z
         str1[i] = (char)(m + 'a');
              
     }
      
     String str2 = String.Join("",str1);
     Console.WriteLine(str2);
       
    }
  
    //Driver code
    public static void Main() {
          
        // Declaring str as 'geeksforgeeks'
         String str = "geeksforgeeks";
         manipulateString(str);
           
          
    }
}
// This code is contributed by PrinciRaj1992

Javascript




<script>
 
// Javascript program for Replace every character of a
// string by a different character
 
 
// Function to manipulate the string
function manipulateString(str)
{
 
    // looping through each character of string
    for (var i = 0; i < str.length; i++) {
 
        // storing integer ASCII value of
        // the character in 'asc'
        var asc = str[i];
 
        // 'rem' contains coded value which
        // needs to be rounded to 26
        var rem = asc.charCodeAt(0) - (26 - (str[i].charCodeAt(0) - 'a'.charCodeAt(0)));
 
        // converting 'rem' character in range
        // 0-25 and storing in 'm'
        var m = (rem % 26);
 
        // printing character by adding ascii value of 'a'
        // so that it becomes in the desired range i.e. a-z
        str[i] = String.fromCharCode(m + 'a'.charCodeAt(0));
    }
    return str;
}
 
// Driver code
// Declaring str as 'geeksforgeeks'
var str = "geeksforgeeks";
document.write(manipulateString(str.split('')).join(''));
 
</script>

Output: 

fbbnddvbfbbnd

 

Time Complexity: O(N), as we are using a loop to traverse N times so it will cost us O(N) time.
Auxiliary Space: O(1), as we are not using any extra space.


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!