Open In App

Convert the ASCII value sentence to its equivalent string

Improve
Improve
Like Article
Like
Save
Share
Report

Given a string str which represents the ASCII (American Standard Code for Information Interchange) Sentence, the task is to convert this string into its equivalent character sequence.

Examples: 

Input: str = “71101101107115” 
Output: Geeks 
71, 101, 101, 107 are 115 are the unicode values 
of the characters ‘G’, ‘e’, ‘e’, ‘k’ and ‘s’ respectively.
Input: str = “104101108108111443211911111410810033” 
Output: hello, world! 

Approach: Traverse the complete string character by character and concatenate every digit. Once the value of the concatenation comes in the range [32, 122] we print the character value corresponding to this numeric value in the ASCII table. We are taking the range [32, 122] because spaces, uppercase letters, and lowercase letters are within this range.

Below is the implementation of the above approach:

C++




// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to print the character sequence
// for the given ASCII sentence
void asciiToSentence(string str, int len)
{
    int num = 0;
    for (int i = 0; i < len; i++) {
 
        // Append the current digit
        num = num * 10 + (str[i] - '0');
 
        // If num is within the required range
        if (num >= 32 && num <= 122) {
 
            // Convert num to char
            char ch = (char)num;
            cout << ch;
 
            // Reset num to 0
            num = 0;
        }
    }
}
 
// Driver code
int main()
{
    string str = "7110110110711510211111471101101107115";
    int len = str.length();
    asciiToSentence(str, len);
 
    return 0;
}


Java




// Java implementation of the approach
class GFG {
 
    // Function to print the character sequence
    // for the given ASCII sentence
    static void asciiToSentence(String str, int len)
    {
        int num = 0;
        for (int i = 0; i < len; i++) {
 
            // Append the current digit
            num = num * 10 + (str.charAt(i) - '0');
 
            // If num is within the required range
            if (num >= 32 && num <= 122) {
 
                // Convert num to char
                char ch = (char)num;
                System.out.print(ch);
 
                // Reset num to 0
                num = 0;
            }
        }
    }
 
    // Driver code
    public static void main(String args[])
    {
        String str = "7110110110711510211111471101101107115";
        int len = str.length();
        asciiToSentence(str, len);
    }
}


Python3




# Python3 implementation of the approach
 
# Function to print the character sequence
# for the given ASCII sentence
def asciiToSentence(string, length) :
     
    num = 0;
    for i in range(length) :
 
        # Append the current digit
        num = num * 10 + (ord(string[i]) -
                          ord('0'));
 
        # If num is within the required range
        if (num >= 32 and num <= 122) :
 
            # Convert num to char
            ch = chr(num);
            print(ch, end = "");
 
            # Reset num to 0
            num = 0;
 
# Driver code
if __name__ == "__main__" :
    string = "7110110110711510211111471101101107115";
    length = len(string);
     
    asciiToSentence(string, length);
 
# This code is contributed by Ryuga


C#




// C# implementation of the approach
using System;
class GFG {
 
    // Function to print the character sequence
    // for the given ASCII sentence
    static void asciiToSentence(String str, int len)
    {
        int num = 0;
        for (int i = 0; i < len; i++) {
 
            // Append the current digit
            num = num * 10 + (str[i] - '0');
 
            // If num is within the required range
            if (num >= 32 && num <= 122) {
 
                // Convert num to char
                char ch = (char)num;
                Console.Write(ch);
 
                // Reset num to 0
                num = 0;
            }
        }
    }
 
    // Driver code
    public static void Main()
    {
        String str = "7110110110711510211111471101101107115";
        int len = str.Length;
        asciiToSentence(str, len);
    }
}


Javascript




<script>
 
// Javascript implementation of the approach
 
// Function to print the character sequence
// for the given ASCII sentence
function asciiToSentence(str, len)
{
    var num = 0;
    for (var i = 0; i < len; i++) {
 
        // Append the current digit
        num = num * 10 + (str[i] - '0');
 
        // If num is within the required range
        if (num >= 32 && num <= 122) {
 
            // Convert num to char
            var ch = String.fromCharCode(num);
            document.write(ch);
 
            // Reset num to 0
            num = 0;
        }
    }
}
 
// Driver code
var str = "7110110110711510211111471101101107115";
var len = str.length;
asciiToSentence(str, len);
 
 
</script>


PHP




<?php
// PHP implementation of the approach
 
// Function to print the character sequence
// for the given ASCII sentence
function asciiToSentence($string, $length)
{
    $num = 0;
    for($i = 0; $i < $length; $i++)
    {
 
        // Append the current digit
        $num = $num * 10 + (ord($string[$i]) - ord('0'));
 
        // If num is within the required range
        if ($num >= 32 && $num <= 122)
        {
 
            // Convert num to char
            $ch = chr($num);
            print($ch);
 
            // Reset num to 0
            $num = 0;
            }
        }
}
 
    // Driver code
    $string = "7110110110711510211111471101101107115";
    $length = strlen($string);
     
    asciiToSentence($string, $length);
 
// This code is contributed by mits
?>


Output

GeeksforGeeks

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



Last Updated : 08 Feb, 2024
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads