Sums of ASCII values of each word in a sentence

We are given a sentence of english language(can also contain digits), we need to compute and print the sum of ASCII values of characters of each word in that sentence.

Examples:

Input :  GeeksforGeeks, a computer science portal for geeks
Output : Sentence representation as sum of ASCII each character in a word:
         1361 97 879 730 658 327 527 
         Total sum -> 4579
Here, [GeeksforGeeks, ] -> 1361, [a] -> 97, [computer] -> 879, [science] -> 730
      [portal] -> 658, [for] -> 327, [geeks] -> 527 

Input : I am a geek
Output : Sum of ASCII values:
         73 206 97 412 
         Total sum -> 788

Approach:

  1. Iterate over the length of the string and keep converting the characters to their ASCII
  2. Keep adding up the values till the end of sentence.
  3. When we come across a space character, we store the sum calculated for that word and set the sum equal to zero again.
  4. Later, we print elements

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation for representing
// each word in a sentence as sum of
// ASCII values of each word
#include <iostream>
#include <string>
#include <vector>
using namespace std;
  
// Function to compute the sum of ASCII values of each
// word separated by a space and return the total sum 
// of the ASCII values, excluding the space.
long long int ASCIIWordSum(string str,
                          vector<long long int>& sumArr)
{
  
    int l = str.length();
    int sum = 0;
    long long int bigSum = 0L;
    for (int i = 0; i < l; i++) {
  
        // Separate each word by
        // a space and store values
        // corresponding to each word
        if (str[i] == ' ') {
  
            bigSum += sum;
            sumArr.push_back(sum);
            sum = 0;
        }
        else
  
            // Implicit type casting
            sum +=  str[i];        
    }
  
    // Storing the value of last word
    sumArr.push_back(sum);
    bigSum += sum;
    return bigSum;
}
// Driver function
int main()
{
    string str = "GeeksforGeeks a computer science "
                 "portal for Geeks";
    vector<long long int> sumArr;
  
    // Calling function
    long long int sum = ASCIIWordSum(str, sumArr);
  
    cout << "Sum of ASCII values:" << std::endl;
    for (auto x : sumArr)
        cout << x << " ";
    cout << endl  << "Total sum -> " << sum;
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program for representing
// each word in a sentence as sum of
// ASCII values of each word
import java.util.*;
import java.lang.*;
  
class Rextester {
  
    // Function to compute the sum of ASCII values of
    // each word separated by a space and return the 
    // total sum of the ASCII values, excluding the
    // space.
    static long ASCIIWordSum(String str, long sumArr[])
    {
        int l = str.length();
        int pos = 0;
        long sum = 0;
        long bigSum = 0;
        for (int i = 0; i < l; i++) {
  
            // Separate each word by
            // a space and store values
            // corresponding to each word
            if (str.charAt(i) == ' ') {
  
                bigSum += sum;
                sumArr[pos++] = sum;
                sum = 0;
            }
            else
  
                // Implicit type casting
                sum += str.charAt(i);            
        }
  
        // Storing the sum of last word
        sumArr[pos] = sum;
        bigSum += sum;
        return bigSum;
    }
  
    // Driver function
    public static void main(String args[])
    {
  
        String str = "GeeksforGeeks, a computer science portal for geeks";
  
        // Counting the number of words in the input sentence
        int ctr = 0;
        for (int i = 0; i < str.length(); i++) 
            if (str.charAt(i) == ' ')
                ctr++;
          
        long sumArr[] = new long[ctr + 1];
  
        // Calling function
        long sum = ASCIIWordSum(str, sumArr);
  
        // Printing equivalent sum of the words in the 
        // sentence
        System.out.println("Sum of ASCII values:");
        for (int i = 0; i <= ctr; i++)
            System.out.print(sumArr[i] + " ");
        System.out.println();
        System.out.print("Total sum -> " + sum);
    }
}

chevron_right


Python 3

# Python 3 implementation for representing
# each word in a sentence as sum of
# ASCII values of each word

# Function to compute the sum of ASCII
# values of each word separated by a space
# and return the total sum of the ASCII
# values, excluding the space.
def ASCIIWordSum(str, sumArr):

l = len(str)
sum = 0
bigSum = 0
for i in range(l):

# Separate each word by a space
# and store values corresponding
# to each word
if (str[i] == ‘ ‘):

bigSum += sum
sumArr.append(sum)
sum = 0

else:

# Implicit type casting
sum += ord(str[i])

# Storing the value of last word
sumArr.append(sum)
bigSum += sum
return bigSum

# Driver Code
if __name__ == “__main__”:

str = “GeeksforGeeks a computer science portal for Geeks”
sumArr = []

# Calling function
sum = ASCIIWordSum(str, sumArr)

print(“Sum of ASCII values:” )
for x in sumArr:
print(x, end = ” “)

print()
print(“Total sum -> “, sum)

# This code is contributed by ita_c

C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program for representing each 
// word in a sentence as sum of
// ASCII values of each word
using System;
  
class GFG {
  
    // Function to compute the sum of ASCII 
    // values of each word separated by a 
    // space and return the total sum of
    // the ASCII values, excluding the space.
    static long ASCIIWordSum(String str, long []sumArr)
    {
        int l = str.Length;
        int pos = 0;
        long sum = 0;
        long bigSum = 0;
        for (int i = 0; i < l; i++) {
  
            // Separate each word by
            // a space and store values
            // corresponding to each word
            if (str[i] == ' ')
            {
                bigSum += sum;
                sumArr[pos++] = sum;
                sum = 0;
            }
            else
  
                // Implicit type casting
                sum += str[i];         
        }
  
        // Storing the sum of last word
        sumArr[pos] = sum;
        bigSum += sum;
        return bigSum;
    }
  
    // Driver function
    public static void Main()
    {
        String str = "GeeksforGeeks, a computer " +
                     "science portal for geeks";
  
        // Counting the number of words
        // in the input sentence
        int ctr = 0;
        for (int i = 0; i < str.Length; i++) 
            if (str[i] == ' ')
                ctr++;
          
        long []sumArr = new long[ctr + 1];
  
        // Calling function
        long sum = ASCIIWordSum(str, sumArr);
  
        // Printing equivalent sum of
        // the words in the sentence
        Console.WriteLine("Sum of ASCII values:");
        for (int i = 0; i <= ctr; i++)
            Console.Write(sumArr[i] + " ");
              
        Console.WriteLine();
        Console.Write("Total sum -> " + sum);
    }
}
  
// This code is contributed by nitin mittal

chevron_right



Output:

Sum of ASCII values:
1317 97 879 730 658 327 495 
Total sum -> 4503

The complexity of the approach is O(len)



My Personal Notes arrow_drop_up

Waba Laba Dub Dub

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : nitin mittal, Ita_c



Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.